diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-14 23:45:09 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-14 23:45:09 +0200 |
commit | f87aa359f5c0dcf7372dca67690fc1baf1178b86 (patch) | |
tree | 3f544246753ee3141f643010de153cef514132bc | |
parent | 32d620abfd98c94cff03eb36a432069fe282ae46 (diff) | |
download | Ishtar-f87aa359f5c0dcf7372dca67690fc1baf1178b86.tar.bz2 Ishtar-f87aa359f5c0dcf7372dca67690fc1baf1178b86.zip |
QA edit doc: add authors field
-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( |