diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-01-30 19:41:22 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-01-30 19:41:22 +0100 |
commit | 5700812bbd67059435d1b2964dedddb489a174dd (patch) | |
tree | 552ed98c38baf0b1a5f54f6e732dbed97d7a4ea6 | |
parent | 929a879792864ae4d654796dc58315f876ac33fa (diff) | |
download | Ishtar-5700812bbd67059435d1b2964dedddb489a174dd.tar.bz2 Ishtar-5700812bbd67059435d1b2964dedddb489a174dd.zip |
A file can be linked to another file (closes #147)
-rw-r--r-- | ishtar/furnitures/forms.py | 12 | ||||
-rw-r--r-- | ishtar/furnitures/models.py | 2 | ||||
-rw-r--r-- | ishtar/furnitures/views.py | 1 |
3 files changed, 12 insertions, 3 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index a45c564af..c7e3a3199 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -188,8 +188,11 @@ class Wizard(NamedUrlSessionFormWizard): if key.startswith('hidden_'): continue value = form.cleaned_data[key] - if key in associated_models and value: - value = associated_models[key].objects.get(pk=value) + if key in associated_models: + if value: + value = associated_models[key].objects.get(pk=value) + else: + value = None dct[key] = value dct = self.get_extra_model(dct, request, storage, form_list) obj = self.get_current_object(request, storage) @@ -692,6 +695,7 @@ class FileFormSelection(forms.Form): class FileFormGeneral(forms.Form): form_label = _("General") associated_models = {'in_charge':models.Person, + 'related_file':models.File, 'file_type':models.FileType} in_charge = forms.IntegerField(label=_("Person in charge"), widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person', @@ -710,6 +714,10 @@ max_length=60, validators=[models.is_unique(models.File, 'internal_reference')]) initial=get_now, widget=widgets.JQueryDate) file_type = forms.ChoiceField(label=_("File type"), choices=models.FileType.get_types()) + related_file = forms.IntegerField(label=_("Related file"), required=False, + widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-file'), + associated_model=models.File), + validators=[models.valid_id(models.File)]) comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, required=False) diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 5c19f050f..dc9253fdd 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -292,6 +292,8 @@ class File(BaseHistorizedItem, OwnPerms): default=datetime.datetime.now) reception_date = models.DateField(_(u'Reception date'), blank=True, null=True) + related_file = models.ForeignKey("File", verbose_name=_(u"Related file"), + blank=True, null=True) if settings.COUNTRY == 'fr': saisine_type = models.ForeignKey(SaisineType, blank=True, null=True, verbose_name= u"Type de saisine") diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index 591ead231..041ebfb76 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -70,7 +70,6 @@ def autocomplete_person(request, person_type=None): for q in q.split(' '): query = query & (Q(name__istartswith=q) | Q(surname__istartswith=q) | \ Q(email__icontains=q)) - print person_type if person_type: try: typs = [int(tp) for tp in person_type.split('_') if tp] |