From 4b50abb6e33da1f2b6b55bb5c9936bd50599cb6b Mon Sep 17 00:00:00 2001 From: Ema Ciupe Date: Mon, 9 Sep 2024 18:49:01 +0300 Subject: [PATCH 1/4] [ch36598] Mandatory questions and fields --- .../data_collection/offline/blueprint.py | 4 +++- .../migrations/0004_question_other.py | 18 ++++++++++++++++++ .../field_monitoring/fm_settings/models.py | 2 ++ .../fm_settings/serializers.py | 7 ++++++- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 src/etools/applications/field_monitoring/fm_settings/migrations/0004_question_other.py diff --git a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py index a996452f5..ca19e03ec 100644 --- a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py +++ b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py @@ -102,7 +102,9 @@ def get_blueprint_for_activity_and_method(activity: 'MonitoringActivity', method help_text=question.specific_details, required=False, # For HACT questions, a warning that is mandatory to fill in is needed in the frontend - styling=['mandatory_warning'] if question.question.category.name == 'HACT' else [] + styling=['mandatory_warning'] + if 'olc' in question.question.other and + question.question.other["olc"].get("mandatory_warning", False) else [] ) ) level_block.add(target_block) diff --git a/src/etools/applications/field_monitoring/fm_settings/migrations/0004_question_other.py b/src/etools/applications/field_monitoring/fm_settings/migrations/0004_question_other.py new file mode 100644 index 000000000..c9d2ab7b5 --- /dev/null +++ b/src/etools/applications/field_monitoring/fm_settings/migrations/0004_question_other.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.3 on 2024-09-09 15:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('field_monitoring_settings', '0003_initial'), + ] + + operations = [ + migrations.AddField( + model_name='question', + name='other', + field=models.JSONField(blank=True, default=dict, verbose_name='Other details'), + ), + ] diff --git a/src/etools/applications/field_monitoring/fm_settings/models.py b/src/etools/applications/field_monitoring/fm_settings/models.py index d318a9977..a6d6032ee 100644 --- a/src/etools/applications/field_monitoring/fm_settings/models.py +++ b/src/etools/applications/field_monitoring/fm_settings/models.py @@ -108,6 +108,8 @@ class Question(models.Model): is_custom = models.BooleanField(default=False, verbose_name=_('Is Custom')) is_active = models.BooleanField(default=True, verbose_name=_('Is Active')) + other = models.JSONField(verbose_name=_('Other details'), blank=True, default=dict) + order = models.PositiveIntegerField(db_index=True, default=1) objects = models.Manager.from_queryset(QuestionsQuerySet)() diff --git a/src/etools/applications/field_monitoring/fm_settings/serializers.py b/src/etools/applications/field_monitoring/fm_settings/serializers.py index 3f7ffc225..778134940 100644 --- a/src/etools/applications/field_monitoring/fm_settings/serializers.py +++ b/src/etools/applications/field_monitoring/fm_settings/serializers.py @@ -60,12 +60,17 @@ class Meta: class QuestionLightSerializer(serializers.ModelSerializer): + show_mandatory_warning = serializers.SerializerMethodField() + + def get_show_mandatory_warning(self, obj): + return obj.other['olc'].get("mandatory_warning", False) if obj.other.get("olc") else False + class Meta: model = Question fields = ( 'id', 'answer_type', 'choices_size', 'level', 'methods', 'category', 'sections', 'text', - 'is_hact', 'is_active', 'is_custom', 'order' + 'is_hact', 'is_active', 'is_custom', 'order', 'show_mandatory_warning' ) From b65591ec1a556811c6d88ad38cdc998c8b680adc Mon Sep 17 00:00:00 2001 From: Ema Ciupe Date: Mon, 9 Sep 2024 19:00:15 +0300 Subject: [PATCH 2/4] check for == 'true' --- .../field_monitoring/data_collection/offline/blueprint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py index ca19e03ec..31e2f37c2 100644 --- a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py +++ b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py @@ -104,7 +104,7 @@ def get_blueprint_for_activity_and_method(activity: 'MonitoringActivity', method # For HACT questions, a warning that is mandatory to fill in is needed in the frontend styling=['mandatory_warning'] if 'olc' in question.question.other and - question.question.other["olc"].get("mandatory_warning", False) else [] + question.question.other["olc"].get("mandatory_warning", False) == 'true' else [] ) ) level_block.add(target_block) From 33e39bdfd0c538c2818676eb4f2fd1f46fe14554 Mon Sep 17 00:00:00 2001 From: Ema Ciupe Date: Mon, 9 Sep 2024 23:08:41 +0300 Subject: [PATCH 3/4] translations --- .../fm_settings/locale/ar/LC_MESSAGES/django.po | 5 ++++- .../fm_settings/locale/es/LC_MESSAGES/django.po | 5 ++++- .../fm_settings/locale/fr/LC_MESSAGES/django.po | 5 ++++- .../fm_settings/locale/pt/LC_MESSAGES/django.po | 5 ++++- .../fm_settings/locale/ru/LC_MESSAGES/django.po | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/etools/applications/field_monitoring/fm_settings/locale/ar/LC_MESSAGES/django.po b/src/etools/applications/field_monitoring/fm_settings/locale/ar/LC_MESSAGES/django.po index 2204abd94..dfb5bde8e 100644 --- a/src/etools/applications/field_monitoring/fm_settings/locale/ar/LC_MESSAGES/django.po +++ b/src/etools/applications/field_monitoring/fm_settings/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-26 09:09+0000\n" +"POT-Creation-Date: 2024-09-09 20:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -136,6 +136,9 @@ msgstr "مخصص" msgid "Is Active" msgstr "فعال" +msgid "Other details" +msgstr "" + msgid "Question" msgstr "السؤال" diff --git a/src/etools/applications/field_monitoring/fm_settings/locale/es/LC_MESSAGES/django.po b/src/etools/applications/field_monitoring/fm_settings/locale/es/LC_MESSAGES/django.po index b943bcb6e..6ec881c0c 100644 --- a/src/etools/applications/field_monitoring/fm_settings/locale/es/LC_MESSAGES/django.po +++ b/src/etools/applications/field_monitoring/fm_settings/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-26 09:09+0000\n" +"POT-Creation-Date: 2024-09-09 20:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,6 +135,9 @@ msgstr "Es personalizada" msgid "Is Active" msgstr "Está Activo" +msgid "Other details" +msgstr "" + msgid "Question" msgstr "Pregunta" diff --git a/src/etools/applications/field_monitoring/fm_settings/locale/fr/LC_MESSAGES/django.po b/src/etools/applications/field_monitoring/fm_settings/locale/fr/LC_MESSAGES/django.po index b9a21af79..96e177a77 100644 --- a/src/etools/applications/field_monitoring/fm_settings/locale/fr/LC_MESSAGES/django.po +++ b/src/etools/applications/field_monitoring/fm_settings/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-24 08:39+0000\n" +"POT-Creation-Date: 2024-09-09 20:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,6 +135,9 @@ msgstr "Est personnalisé" msgid "Is Active" msgstr "Est actif" +msgid "Other details" +msgstr "" + msgid "Question" msgstr "Question" diff --git a/src/etools/applications/field_monitoring/fm_settings/locale/pt/LC_MESSAGES/django.po b/src/etools/applications/field_monitoring/fm_settings/locale/pt/LC_MESSAGES/django.po index 0c206b791..766b577c0 100644 --- a/src/etools/applications/field_monitoring/fm_settings/locale/pt/LC_MESSAGES/django.po +++ b/src/etools/applications/field_monitoring/fm_settings/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-24 08:39+0000\n" +"POT-Creation-Date: 2024-09-09 20:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,6 +135,9 @@ msgstr "É Personalizado" msgid "Is Active" msgstr "Está activo" +msgid "Other details" +msgstr "" + msgid "Question" msgstr "Pergunta" diff --git a/src/etools/applications/field_monitoring/fm_settings/locale/ru/LC_MESSAGES/django.po b/src/etools/applications/field_monitoring/fm_settings/locale/ru/LC_MESSAGES/django.po index 18bbdcb53..c27270fd4 100644 --- a/src/etools/applications/field_monitoring/fm_settings/locale/ru/LC_MESSAGES/django.po +++ b/src/etools/applications/field_monitoring/fm_settings/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-24 08:39+0000\n" +"POT-Creation-Date: 2024-09-09 20:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -137,6 +137,9 @@ msgstr "Пользовательский" msgid "Is Active" msgstr "Активен" +msgid "Other details" +msgstr "" + msgid "Question" msgstr "Вопрос" From e5b93471c7cde36e4cf1d36209c01edcaa33b5d4 Mon Sep 17 00:00:00 2001 From: Ema Ciupe Date: Tue, 10 Sep 2024 09:34:35 +0300 Subject: [PATCH 4/4] condition change --- .../field_monitoring/data_collection/offline/blueprint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py index ebae990a7..c0739e560 100644 --- a/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py +++ b/src/etools/applications/field_monitoring/data_collection/offline/blueprint.py @@ -105,7 +105,7 @@ def get_blueprint_for_activity_and_method(activity: 'MonitoringActivity', method # For HACT questions, a warning that is mandatory to fill in is needed in the frontend styling=['mandatory_warning'] if 'olc' in question.question.other and - question.question.other["olc"].get("mandatory_warning", False) == 'true' else [] + question.question.other["olc"].get("mandatory_warning", False) else [] ) ) level_block.add(target_block)