1+ import reversion
12from django .utils .translation import ugettext_lazy as _
23# from django.db import models
34from django .contrib .gis .db import models
@@ -132,6 +133,7 @@ class Labels:
132133 # update api_country set record_type=3 where name like '%egion%';
133134
134135
136+ @reversion .register ()
135137class Country (models .Model ):
136138 """ A country """
137139
@@ -287,6 +289,7 @@ class Meta:
287289 def __str__ (self ):
288290 return f'{ self .admin1 } - { self .name } '
289291
292+
290293class CountryGeoms (models .Model ):
291294 """ Admin0 geometries """
292295 geom = models .MultiPolygonField (srid = 4326 , blank = True , null = True )
@@ -298,11 +301,13 @@ class DistrictGeoms(models.Model):
298301 geom = models .MultiPolygonField (srid = 4326 , blank = True , null = True )
299302 district = models .OneToOneField (District , verbose_name = _ ('district' ), on_delete = models .DO_NOTHING , primary_key = True )
300303
304+
301305class Admin2Geoms (models .Model ):
302306 """ Admin2 geometries """
303307 geom = models .MultiPolygonField (srid = 4326 , blank = True , null = True )
304308 admin2 = models .OneToOneField (Admin2 , verbose_name = _ ('admin2' ), on_delete = models .DO_NOTHING , primary_key = True )
305309
310+
306311class VisibilityChoices (IntEnum ):
307312 MEMBERSHIP = 1
308313 IFRC = 2
@@ -333,6 +338,7 @@ class VisibilityCharChoices():
333338
334339# Common parent class for key figures.
335340# Country/region variants inherit from this.
341+ @reversion .register ()
336342class AdminKeyFigure (models .Model ):
337343 figure = models .CharField (verbose_name = _ ('figure' ), max_length = 100 )
338344 deck = models .CharField (verbose_name = _ ('deck' ), max_length = 50 )
@@ -390,6 +396,7 @@ class Labels:
390396 TAB_3 = _ ('Tab 3' )
391397
392398
399+ @reversion .register ()
393400class RegionSnippet (models .Model ):
394401 region = models .ForeignKey (Region , verbose_name = _ ('region' ), related_name = 'snippets' , on_delete = models .CASCADE )
395402 snippet = HTMLField (verbose_name = _ ('snippet' ), null = True , blank = True )
@@ -406,6 +413,7 @@ def __str__(self):
406413 return self .snippet
407414
408415
416+ @reversion .register ()
409417class RegionEmergencySnippet (models .Model ):
410418 region = models .ForeignKey (Region , verbose_name = _ ('region' ), related_name = 'emergency_snippets' , on_delete = models .CASCADE )
411419 title = models .CharField (max_length = 255 , blank = True )
@@ -422,6 +430,7 @@ def __str__(self):
422430 return self .snippet
423431
424432
433+ @reversion .register ()
425434class RegionPreparednessSnippet (models .Model ):
426435 region = models .ForeignKey (Region , verbose_name = _ ('region' ), related_name = 'preparedness_snippets' , on_delete = models .CASCADE )
427436 title = models .CharField (max_length = 255 , blank = True )
@@ -438,6 +447,7 @@ def __str__(self):
438447 return self .snippet
439448
440449
450+ @reversion .register ()
441451class RegionProfileSnippet (models .Model ):
442452 region = models .ForeignKey (Region , verbose_name = _ ('region' ), related_name = 'profile_snippets' , on_delete = models .CASCADE )
443453 title = models .CharField (max_length = 255 , blank = True )
@@ -463,6 +473,7 @@ def __str__(self):
463473# return self.title
464474
465475
476+ @reversion .register ()
466477class CountrySnippet (models .Model ):
467478 country = models .ForeignKey (Country , verbose_name = _ ('country' ), related_name = 'snippets' , on_delete = models .CASCADE )
468479 snippet = HTMLField (verbose_name = _ ('snippet' ), null = True , blank = True )
@@ -479,6 +490,7 @@ def __str__(self):
479490 return self .snippet
480491
481492
493+ @reversion .register ()
482494class AdminLink (models .Model ):
483495 title = models .CharField (verbose_name = _ ('title' ), max_length = 100 )
484496 url = models .URLField (verbose_name = _ ('url' ), max_length = 300 )
@@ -505,6 +517,7 @@ class Meta:
505517 verbose_name_plural = _ ('country links' )
506518
507519
520+ @reversion .register ()
508521class AdminContact (models .Model ):
509522 ctype = models .CharField (verbose_name = _ ('type' ), max_length = 100 , blank = True )
510523 name = models .CharField (verbose_name = _ ('name' ), max_length = 100 )
@@ -546,6 +559,7 @@ class Labels:
546559 RED = _ ('Red' )
547560
548561
562+ @reversion .register ()
549563class Event (models .Model ):
550564 """ A disaster, which could cover multiple countries """
551565
@@ -681,6 +695,7 @@ def __str__(self):
681695 return self .name
682696
683697
698+ @reversion .register ()
684699class EventFeaturedDocument (models .Model ):
685700 event = models .ForeignKey (
686701 Event ,
@@ -700,6 +715,7 @@ class EventFeaturedDocument(models.Model):
700715 )
701716
702717
718+ @reversion .register ()
703719class EventLink (models .Model ):
704720 """
705721 Used in emergency overview.
@@ -716,6 +732,7 @@ class EventLink(models.Model):
716732 url = models .URLField (verbose_name = _ ('url' ))
717733
718734
735+ @reversion .register ()
719736class EventContact (models .Model ):
720737 """ Contact for event """
721738
@@ -734,6 +751,7 @@ def __str__(self):
734751 return '%s: %s' % (self .name , self .title )
735752
736753
754+ @reversion .register ()
737755class KeyFigure (models .Model ):
738756 event = models .ForeignKey (Event , verbose_name = _ ('event' ), related_name = 'key_figures' , on_delete = models .CASCADE )
739757 number = models .CharField (verbose_name = _ ('number' ), max_length = 100 , help_text = _ ('key figure metric' ))
@@ -750,6 +768,7 @@ def snippet_image_path(instance, filename):
750768 return 'emergencies/%s/%s' % (instance .event .id , filename )
751769
752770
771+ @reversion .register ()
753772class Snippet (models .Model ):
754773 """ Snippet of text """
755774 snippet = HTMLField (verbose_name = _ ('snippet' ), null = True , blank = True )
@@ -788,6 +807,7 @@ def sitrep_document_path(instance, filename):
788807 return 'sitreps/%s/%s' % (instance .event .id , filename )
789808
790809
810+ @reversion .register ()
791811class SituationReport (models .Model ):
792812 created_at = models .DateTimeField (verbose_name = _ ('created at' ), auto_now_add = True )
793813 name = models .CharField (verbose_name = _ ('name' ), max_length = 100 )
@@ -869,6 +889,7 @@ class Labels:
869889 ARCHIVED = _ ('Archived' )
870890
871891
892+ @reversion .register ()
872893class Appeal (models .Model ):
873894 """ An appeal for a disaster and country, containing documents """
874895
@@ -1025,6 +1046,7 @@ def __str__(self):
10251046 return self .aid
10261047
10271048
1049+ @reversion .register ()
10281050class AppealDocument (models .Model ):
10291051 # Don't set `auto_now_add` so we can modify it on save
10301052 created_at = models .DateTimeField (verbose_name = _ ('created at' ))
@@ -1048,6 +1070,7 @@ def __str__(self):
10481070 return '%s - %s' % (self .appeal , self .name )
10491071
10501072
1073+ @reversion .register ()
10511074class AppealFilter (models .Model ):
10521075 name = models .CharField (verbose_name = _ ('name' ), max_length = 100 )
10531076 value = models .CharField (verbose_name = _ ('value' ), max_length = 1000 )
@@ -1109,6 +1132,7 @@ class Labels:
11091132 OTHER = _ ('OTHER' )
11101133
11111134
1135+ @reversion .register ()
11121136class ExternalPartner (models .Model ):
11131137 ''' Dropdown items for COVID Field Reports '''
11141138
@@ -1177,6 +1201,7 @@ def __str__(self):
11771201 return self .user .get_username ()
11781202
11791203
1204+ @reversion .register ()
11801205class FieldReport (models .Model ):
11811206 """ A field report for a disaster and country, containing documents """
11821207
@@ -1412,6 +1437,7 @@ def __str__(self):
14121437 return '%s - %s' % (self .id , summary )
14131438
14141439
1440+ @reversion .register ()
14151441class FieldReportContact (models .Model ):
14161442 """ Contact for field report """
14171443
@@ -1474,6 +1500,7 @@ class ActionCategory:
14741500 )
14751501
14761502
1503+ @reversion .register ()
14771504class Action (models .Model ):
14781505 """ Action taken """
14791506 name = models .CharField (verbose_name = _ ('name' ), max_length = 400 )
@@ -1499,6 +1526,7 @@ def __str__(self):
14991526 return self .name
15001527
15011528
1529+ @reversion .register ()
15021530class ActionsTaken (models .Model ):
15031531 """ All the actions taken by an organization """
15041532
@@ -1532,6 +1560,7 @@ def __str__(self):
15321560 return self .name
15331561
15341562
1563+ @reversion .register ()
15351564class Source (models .Model ):
15361565 """ Source of information """
15371566 stype = models .ForeignKey (SourceType , verbose_name = _ ('type' ), on_delete = models .PROTECT )
@@ -1548,6 +1577,7 @@ def __str__(self):
15481577 return '%s: %s' % (self .stype .name , self .spec )
15491578
15501579
1580+ @reversion .register ()
15511581class Profile (models .Model ):
15521582 """ Holds location and identifying information about users """
15531583 NTLS = 'NTLS'
@@ -1593,6 +1623,7 @@ def __str__(self):
15931623 return self .user .username
15941624
15951625
1626+ @reversion .register ()
15961627class EmergencyOperationsBase (models .Model ):
15971628 """Common fields used by EmergencyOperations* Tables"""
15981629 is_validated = models .BooleanField (
@@ -1901,6 +1932,7 @@ def __str__(self):
19011932 return self .raw_file_name
19021933
19031934
1935+ @reversion .register ()
19041936class MainContact (models .Model ):
19051937 ''' Contacts on the Resources page '''
19061938 extent = models .CharField (verbose_name = _ ('extent' ), max_length = 300 )
@@ -1930,6 +1962,7 @@ class Labels:
19301962 ERRONEOUS = _ ('Erroneous' )
19311963
19321964
1965+ @reversion .register ()
19331966class CronJob (models .Model ):
19341967 """ CronJob log row about jobs results """
19351968 name = models .CharField (verbose_name = _ ('name' ), max_length = 100 , default = '' )
0 commit comments