diff options
Diffstat (limited to 'archaeological_context_records/wizards.py')
-rw-r--r-- | archaeological_context_records/wizards.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/archaeological_context_records/wizards.py b/archaeological_context_records/wizards.py index 99c666e89..2449b400e 100644 --- a/archaeological_context_records/wizards.py +++ b/archaeological_context_records/wizards.py @@ -29,6 +29,14 @@ class RecordWizard(Wizard): model = models.ContextRecord edit = False wizard_done_window = reverse_lazy('show-contextrecord') + relations_step_key = 'relations' + + def get_template_names(self): + templates = super(RecordWizard, self).get_template_names() + current_step = self.steps.current + if current_step.startswith(self.relations_step_key): + templates = ['ishtar/wizard/relations_wizard.html'] + templates + return templates def get_current_operation(self): step = self.steps.current @@ -87,9 +95,21 @@ class RecordWizard(Wizard): else: current_object = self.get_current_object() data['context_record'] = current_object + elif step.startswith('relations') and hasattr(form, 'management_form'): + data['CONTEXT_RECORDS'] = self.get_other_context_records() form = super(RecordWizard, self).get_form(step, data, files) return form + def get_other_context_records(self): + operation = self.get_current_operation() + if not operation: + return [] + q = models.ContextRecord.objects.filter(operation=operation) + obj = self.get_current_object() + if obj and obj.pk: + q = q.exclude(pk=obj.pk) + return [(cr.pk, unicode(cr)) for cr in q.all()] + class RecordModifWizard(RecordWizard): modification = True |