diff options
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/chimere/models.py b/chimere/models.py index 7ee2e6a..20efb2d 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -46,7 +46,7 @@ from chimere.widgets import HiddenPointChooserWidget, PointField, RouteField, \ DatePickerWidget from chimere.managers import BaseGeoManager from chimere.utils import KMLManager, OSMManager, ShapefileManager, \ - GeoRSSManager, CSVManager, HtmlXsltManager + GeoRSSManager, CSVManager, HtmlXsltManager, XMLXsltManager class Page(models.Model): """Simple extra pages @@ -304,7 +304,8 @@ IMPORTERS = {'KML':KMLManager, 'SHP':ShapefileManager, 'RSS':GeoRSSManager, 'CSV':CSVManager, - 'XSLT':HtmlXsltManager + 'XSLT':HtmlXsltManager, + 'XXLT':XMLXsltManager } IMPORTER_CHOICES = (('KML', 'KML'), @@ -312,7 +313,8 @@ IMPORTER_CHOICES = (('KML', 'KML'), ('SHP', 'Shapefile'), ('RSS', 'GeoRSS'), ('CSV', 'CSV'), - ('XSLT', 'HTML-XSLT') + ('XSLT', 'HTML-XSLT'), + ('XXLT', 'XML-XSLT'), ) IMPORTER_CHOICES_DICT = dict(IMPORTER_CHOICES) @@ -346,10 +348,9 @@ class Importer(models.Model): blank=True, null=True) license = models.CharField(_(u"License"), max_length=100, blank=True, null=True) - categories = SelectMultipleField(SubCategory, + categories = SelectMultipleField(SubCategory, blank=True, null=True, verbose_name=_(u"Associated subcategories")) - state = models.CharField(_(u"State"), max_length=200, - blank=True, null=True) + state = models.TextField(_(u"State"), blank=True, null=True) associate_marker_to_way = models.BooleanField(_(u"Automatically associate "\ u"a marker to a way"), default=False) automatic_update = models.BooleanField(_(u"Automatically updated"), @@ -377,6 +378,31 @@ class Importer(models.Model): def display_categories(self): return u"\n".join([cat.name for cat in self.categories.all()]) + def get_key_category_dict(self): + dct = {} + # if no category provided: all category are considered + q = SubCategory.objects.all() + if self.categories.count(): + q = self.categories.all() + for cat in q.all(): + dct[defaultfilters.slugify(cat.name)] = cat + + for key_cat in self.key_categories.all(): + dct[key_cat.key] = key_cat.category + return dct + +class ImporterKeyCategories(models.Model): + """ + Association between key and categories + """ + importer = models.ForeignKey(Importer, verbose_name=_(u"Importer"), + related_name='key_categories') + category = models.ForeignKey(SubCategory, verbose_name=_(u"Category")) + key = models.CharField(_(u"Import key"), max_length=200) + + class Meta: + verbose_name = _(u"Importer - Key categories") + STATUS = (('S', _(u'Submited')), ('A', _(u'Available')), ('M', _(u'Modified')), |