summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms_common.py3
-rw-r--r--ishtar_common/tests.py37
2 files changed, 40 insertions, 0 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index cc4cf31a8..ce7f81f34 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -2296,6 +2296,7 @@ class QADocumentFormMulti(QAForm):
associated_models = {
"qa_source_type": models.SourceType,
"qa_authors": models.Author,
+ "qa_tags": models.DocumentTag,
}
MULTI = True
@@ -2313,11 +2314,13 @@ class QADocumentFormMulti(QAForm):
qa_format_type = forms.ChoiceField(label=_("Format"), choices=[], required=False)
qa_support_type = forms.ChoiceField(label=_("Medium"), choices=[], required=False)
qa_scale = forms.CharField(label=_("Scale"), max_length=30, required=False)
+ qa_tags = forms.ChoiceField(label=_("Tags"), choices=[], required=False)
TYPES = [
FieldType("qa_source_type", models.SourceType),
FieldType("qa_format_type", models.Format),
FieldType("qa_support_type", models.SupportType),
+ FieldType("qa_tags", models.DocumentTag),
]
def _get_qa_authors(self, value):
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 0ebf3f56d..3d69315b4 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -3757,6 +3757,43 @@ class PersonQATest(TestCase):
)
+class DocumentQATest(TestCase):
+ model = models.Document
+
+ def setUp(self):
+ self.username, self.password, self.user = create_superuser()
+ self.user.user_permissions.add(Permission.objects.get(codename="change_document"))
+ self.user.user_permissions.add(Permission.objects.get(codename="change_own_document"))
+ self.st1 = models.SourceType.objects.create(label="Report", code="REP")
+ self.doc_1 = models.Document.objects.create(source_type=self.st1, title="First document")
+ self.doc_2 = models.Document.objects.create(source_type=self.st1, title="Second document")
+ self.tag = models.DocumentTag.objects.create(label="ambiance", txt_idx="ambiance")
+
+ def test_bulk_update(self):
+ c = Client()
+ pks = "{}-{}".format(self.doc_1.pk, self.doc_2.pk)
+ response = c.get(reverse("document-qa-bulk-update", args=[pks]))
+ self.assertRedirects(response, "/")
+
+ c.login(username=self.username, password=self.password)
+ response = c.get(reverse("document-qa-bulk-update", args=[pks]))
+ self.assertEqual(response.status_code, 200)
+
+ response = c.post(
+ reverse("document-qa-bulk-update-confirm", args=[pks]),
+ {"qa_tags": self.tag.pk},
+ )
+ if response.status_code != 200:
+ self.assertRedirects(response, "/success/")
+
+ self.assertEqual(
+ models.Document.objects.get(pk=self.doc_1.pk).tags.first(), self.tag
+ )
+ self.assertEqual(
+ models.Document.objects.get(pk=self.doc_2.pk).tags.first(), self.tag
+ )
+
+
class StorageTest(TestCase):
def setUp(self) -> None:
self.st1 = models.SourceType.objects.create(label="Report", code="REP")