diff options
| -rw-r--r-- | archaeological_finds/forms.py | 1 | ||||
| -rw-r--r-- | ishtar_common/forms.py | 15 | ||||
| -rw-r--r-- | ishtar_common/forms_common.py | 12 | 
3 files changed, 23 insertions, 5 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 628b08161..2e144f96f 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -1486,7 +1486,6 @@ class UpstreamFindFormSelection(MultiSearchForm, FindFormSelection):          validators=[valid_ids(current_model)]) -  class SingleUpstreamFindFormSelection(UpstreamFindFormSelection):      current_model = models.Find      pk = forms.CharField( diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index a2e7a4fd1..76b33b638 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -927,11 +927,18 @@ class QAForm(CustomForm, ManageOldType):          key = base_key[len("qa_"):]          field = item._meta.get_field(key)          if getattr(field, 'related_model', None): -            if type(value) == list: -                value = [field.related_model.objects.get(pk=v) -                         for v in value] +            is_list = isinstance(value, (list, tuple)) +            if not is_list: +                value = [value] +            new_value = [] +            for v in value: +                if not isinstance(v, field.related_model): +                    v = field.related_model.objects.get(pk=v) +                new_value.append(v) +            if is_list: +                value = new_value              else: -                value = field.related_model.objects.get(pk=value) +                value = new_value[0]          if getattr(field, 'many_to_many', None):              if type(value) not in (list, tuple):                  value = [value] diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 16c9dd52d..5eaa6c435 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1409,6 +1409,7 @@ class QADocumentFormMulti(QAForm):      base_models = ['qa_source_type']      associated_models = {          'qa_source_type': models.SourceType, +        'qa_authors': models.Author,      }      MULTI = True @@ -1418,11 +1419,22 @@ class QADocumentFormMulti(QAForm):      qa_source_type = forms.ChoiceField(          label=_(u"Source type"), required=False      ) +    qa_authors = widgets.ModelJQueryAutocompleteField( +        model=models.Author, label=_(u"Author"), new=True, +        long_widget=True, required=False)      TYPES = [          FieldType('qa_source_type', models.SourceType),      ] +    def _get_qa_authors(self, value): +        print(value) +        try: +            value = models.Author.objects.get(pk=value).cached_label +        except models.Author.DoesNotExist: +            return "" +        return value +  class QALockForm(forms.Form):      action = forms.ChoiceField( | 
