diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-11-17 19:18:01 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-11-17 19:18:01 +0100 |
commit | 36ce27b2341edc9c9377f87c677be707582dc81f (patch) | |
tree | e34152d8ba598fb566a4db901dc790921b060764 /chimere/models.py | |
parent | 2c542df05fa321655842872ed3a0412f780acdc7 (diff) | |
download | Chimère-36ce27b2341edc9c9377f87c677be707582dc81f.tar.bz2 Chimère-36ce27b2341edc9c9377f87c677be707582dc81f.zip |
Manage JSON overlay
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/chimere/models.py b/chimere/models.py index f21e45a..2d5c991 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -528,6 +528,30 @@ class ImporterKeyCategories(models.Model): class Meta: verbose_name = _("Importer - Key categories") +OVERLAY_CHOICES = ( + ('JSON', 'GeoJSON'), +) + + +class Overlay(models.Model): + ''' + Static overlay on the map + ''' + name = models.CharField(_("Name"), max_length=150) + overlay_type = models.CharField(_("Importer type"), max_length=4, + choices=OVERLAY_CHOICES) + overlay_file = models.FileField(_("File")) + style = models.TextField(_("Style definition"), blank=True, null=True, + help_text=_("Javascript definition. Cf. to " + "openlayers3 documentation.")) + + def __str__(self): + return self.name or "" + + class Meta: + verbose_name = _("Overlay file") + verbose_name_plural = _("Overlay files") + class GeographicItem(models.Model): categories = SelectMultipleField(SubCategory) @@ -1797,6 +1821,8 @@ class Area(models.Model, SimpleArea): _("Default area"), help_text=_("Only one area is set by default")) layers = SelectMultipleField(Layer, related_name='areas', through='AreaLayers', blank=True) + overlays = SelectMultipleField(Overlay, related_name='overlays', + through='AreaOverlays', blank=True) default_subcategories = SelectMultipleField( SubCategory, blank=True, verbose_name=_("Sub-categories checked by default")) @@ -1979,8 +2005,19 @@ class AreaLayers(models.Model): class Meta: ordering = ('order',) - verbose_name = _("Layers") - verbose_name_plural = _("Layers") + verbose_name = _("Area - Layer") + verbose_name_plural = _("Areas - Layers") + + +class AreaOverlays(models.Model): + area = models.ForeignKey(Area) + overlay = models.ForeignKey(Overlay) + order = models.IntegerField(_("Order")) + + class Meta: + ordering = ('order',) + verbose_name = _("Area - Overlay") + verbose_name_plural = _("Areas - Overlays") class PropertyModel(models.Model): |