summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commit5c2457815a333edb98ccfb91c7bbf59db1501ccd (patch)
tree3f544246753ee3141f643010de153cef514132bc /ishtar_common
parentbb4a57dcfa0c107c414c39a70521cd557a8eb215 (diff)
downloadIshtar-5c2457815a333edb98ccfb91c7bbf59db1501ccd.tar.bz2
Ishtar-5c2457815a333edb98ccfb91c7bbf59db1501ccd.zip
QA edit doc: add authors field
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms.py15
-rw-r--r--ishtar_common/forms_common.py12
2 files changed, 23 insertions, 4 deletions
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(