From d1886f4aeca8dc3fbdf374aa051d083a546e16df Mon Sep 17 00:00:00 2001 From: Sajjad Anwar Date: Tue, 31 Mar 2020 17:39:18 +0530 Subject: [PATCH 1/5] add three tabs, set one by default. allow snippets to be assigned to tabs --- api/migrations/0047_auto_20200331_1153.py | 45 +++++++++++++++++++++++ api/models.py | 10 +++++ api/serializers.py | 4 +- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 api/migrations/0047_auto_20200331_1153.py diff --git a/api/migrations/0047_auto_20200331_1153.py b/api/migrations/0047_auto_20200331_1153.py new file mode 100644 index 000000000..edcd2a26d --- /dev/null +++ b/api/migrations/0047_auto_20200331_1153.py @@ -0,0 +1,45 @@ +# Generated by Django 2.2.10 on 2020-03-31 11:53 + +import api.models +from django.db import migrations, models +import enumfields.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0046_merge_20200325_1016'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='tab_one_title', + field=models.CharField(default='Additional Information', max_length=50), + ), + migrations.AddField( + model_name='event', + name='tab_three_title', + field=models.CharField(max_length=50, null=True), + ), + migrations.AddField( + model_name='event', + name='tab_two_title', + field=models.CharField(max_length=50, null=True), + ), + migrations.AddField( + model_name='snippet', + name='tab', + field=enumfields.fields.EnumIntegerField(default=1, enum=api.models.TabNumber), + ), + migrations.AlterField( + model_name='country', + name='society_url', + field=models.URLField(blank=True, verbose_name='URL - Society'), + ), + migrations.AlterField( + model_name='country', + name='url_ifrc', + field=models.URLField(blank=True, verbose_name='URL - IFRC'), + ), + ] diff --git a/api/models.py b/api/models.py index 69bd68a0c..5bf83498e 100644 --- a/api/models.py +++ b/api/models.py @@ -198,6 +198,10 @@ class PositionType(IntEnum): LOW = 4 BOTTOM = 5 +class TabNumber(IntEnum): + TAB_1 = 1 + TAB_2 = 2 + TAB_3 = 3 class RegionSnippet(models.Model): region = models.ForeignKey(Region, related_name='snippets', on_delete=models.CASCADE) @@ -298,6 +302,11 @@ class Event(models.Model): hide_attached_field_reports = models.BooleanField(default=False) + # Tabs. Events can have upto 3 tabs to organize snippets. + tab_one_title = models.CharField(max_length=50, null=False, default='Additional Information') + tab_two_title = models.CharField(max_length=50, null=True) + tab_three_title = models.CharField(max_length=50, null=True) + class Meta: ordering = ('-disaster_start_date',) verbose_name = 'Emergency' @@ -387,6 +396,7 @@ class Snippet(models.Model): event = models.ForeignKey(Event, related_name='snippets', on_delete=models.CASCADE) visibility = EnumIntegerField(VisibilityChoices, default=3) position = EnumIntegerField(PositionType, default=3) + tab = EnumIntegerField(TabNumber, default=1) class Meta: ordering = ('position', 'id',) diff --git a/api/serializers.py b/api/serializers.py index ddfdbbdba..d7114174f 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -146,7 +146,7 @@ class Meta: class SnippetSerializer(serializers.ModelSerializer): class Meta: model = Snippet - fields = ('event', 'snippet', 'image', 'visibility', 'position', 'id',) + fields = ('event', 'snippet', 'image', 'visibility', 'position', 'tab', 'id',) class EventContactSerializer(serializers.ModelSerializer): class Meta: @@ -201,7 +201,7 @@ class DetailEventSerializer(serializers.ModelSerializer): field_reports = MiniFieldReportSerializer(many=True, read_only=True) class Meta: model = Event - fields = ('name', 'dtype', 'countries', 'districts', 'summary', 'num_affected', 'ifrc_severity_level', 'glide', 'disaster_start_date', 'created_at', 'auto_generated', 'appeals', 'contacts', 'key_figures', 'is_featured', 'is_featured_region', 'field_reports', 'hide_attached_field_reports', 'updated_at', 'id', 'slug',) + fields = ('name', 'dtype', 'countries', 'districts', 'summary', 'num_affected', 'ifrc_severity_level', 'glide', 'disaster_start_date', 'created_at', 'auto_generated', 'appeals', 'contacts', 'key_figures', 'is_featured', 'is_featured_region', 'field_reports', 'hide_attached_field_reports', 'updated_at', 'id', 'slug', 'tab_one_title', 'tab_two_title', 'tab_three_title',) lookup_field = 'slug' class SituationReportTypeSerializer(serializers.ModelSerializer): From 579f6642ef634b2242c2401408bc4d566da193e6 Mon Sep 17 00:00:00 2001 From: Sajjad Anwar Date: Wed, 1 Apr 2020 18:21:44 +0530 Subject: [PATCH 2/5] make tabs optional --- api/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/models.py b/api/models.py index 5bf83498e..a65f7f5ab 100644 --- a/api/models.py +++ b/api/models.py @@ -303,9 +303,9 @@ class Event(models.Model): hide_attached_field_reports = models.BooleanField(default=False) # Tabs. Events can have upto 3 tabs to organize snippets. - tab_one_title = models.CharField(max_length=50, null=False, default='Additional Information') - tab_two_title = models.CharField(max_length=50, null=True) - tab_three_title = models.CharField(max_length=50, null=True) + tab_one_title = models.CharField(max_length=50, null=False, blank=True, default='Additional Information') + tab_two_title = models.CharField(max_length=50, null=True, blank=True) + tab_three_title = models.CharField(max_length=50, null=True, blank=True) class Meta: ordering = ('-disaster_start_date',) From e6537617f27b68553b85f9bdd4245c236eece934 Mon Sep 17 00:00:00 2001 From: Sajjad Anwar Date: Thu, 2 Apr 2020 16:20:01 +0530 Subject: [PATCH 3/5] allow tab titles to be null --- api/migrations/0048_auto_20200401_1249.py | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 api/migrations/0048_auto_20200401_1249.py diff --git a/api/migrations/0048_auto_20200401_1249.py b/api/migrations/0048_auto_20200401_1249.py new file mode 100644 index 000000000..820553426 --- /dev/null +++ b/api/migrations/0048_auto_20200401_1249.py @@ -0,0 +1,28 @@ +# Generated by Django 2.2.10 on 2020-04-01 12:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0047_auto_20200331_1153'), + ] + + operations = [ + migrations.AlterField( + model_name='event', + name='tab_one_title', + field=models.CharField(blank=True, default='Additional Information', max_length=50), + ), + migrations.AlterField( + model_name='event', + name='tab_three_title', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AlterField( + model_name='event', + name='tab_two_title', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] From 669f55ca98f2c6800df8c48b535eaa2990949345 Mon Sep 17 00:00:00 2001 From: Sajjad Anwar Date: Fri, 3 Apr 2020 20:39:50 +0530 Subject: [PATCH 4/5] merge migrations --- api/migrations/0049_merge_20200403_1508.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 api/migrations/0049_merge_20200403_1508.py diff --git a/api/migrations/0049_merge_20200403_1508.py b/api/migrations/0049_merge_20200403_1508.py new file mode 100644 index 000000000..0a6266b8d --- /dev/null +++ b/api/migrations/0049_merge_20200403_1508.py @@ -0,0 +1,14 @@ +# Generated by Django 2.2.10 on 2020-04-03 15:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0048_auto_20200401_1249'), + ('api', '0048_merge_20200401_1310'), + ] + + operations = [ + ] From 2097ef317a43137a136b11240b4776430fa4d1e1 Mon Sep 17 00:00:00 2001 From: GregoryHorvath Date: Tue, 7 Apr 2020 14:12:20 +0200 Subject: [PATCH 5/5] Merge migrations --- api/migrations/0054_merge_20200407_1212.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 api/migrations/0054_merge_20200407_1212.py diff --git a/api/migrations/0054_merge_20200407_1212.py b/api/migrations/0054_merge_20200407_1212.py new file mode 100644 index 000000000..7f3ae5e4e --- /dev/null +++ b/api/migrations/0054_merge_20200407_1212.py @@ -0,0 +1,14 @@ +# Generated by Django 2.2.10 on 2020-04-07 12:12 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0053_merge_20200406_1343'), + ('api', '0049_merge_20200403_1508'), + ] + + operations = [ + ]