diff options
-rw-r--r-- | chimere/main/forms.py | 4 | ||||
-rw-r--r-- | chimere/main/models.py | 9 | ||||
-rw-r--r-- | chimere/main/widgets.py | 5 |
3 files changed, 14 insertions, 4 deletions
diff --git a/chimere/main/forms.py b/chimere/main/forms.py index be18b2f..74577d1 100644 --- a/chimere/main/forms.py +++ b/chimere/main/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2010 É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 @@ -29,7 +29,7 @@ from django.core.mail import EmailMessage, BadHeaderError from chimere import settings from chimere.main.models import Marker, Route, PropertyModel, Property, Area,\ - News, Category + News, Category, SubCategory from chimere.main.widgets import AreaField, PointField, TextareaWidget def notifyStaff(subject, body, sender=None): diff --git a/chimere/main/models.py b/chimere/main/models.py index 2576395..60a5837 100644 --- a/chimere/main/models.py +++ b/chimere/main/models.py @@ -26,7 +26,8 @@ from django.contrib.gis.db import models from django.contrib import admin from chimere import settings -from chimere.main.widgets import PointField, RouteField +from chimere.main.widgets import PointField, RouteField, \ + ManyToManyField_NoSyncdb class News(models.Model): @@ -93,6 +94,8 @@ class SubCategory(models.Model): category = models.ForeignKey(Category, verbose_name=_("Category")) name = models.CharField(_("Name"), max_length=150) available = models.BooleanField(_("Available")) + areas = models.ManyToManyField('Area', related_name='areas', + blank=True, null=True, db_table=u'subcategory_areas') icon = models.ForeignKey(Icon, verbose_name=_("Icon")) color_theme = models.ForeignKey(ColorTheme, verbose_name=_("Color theme"), blank=True, null=True) @@ -267,9 +270,11 @@ class Area(models.Model): """ name = models.CharField(_("Name"), max_length=150) url = models.CharField(_("Url"), max_length=100, blank=True) + subcategories = ManyToManyField_NoSyncdb(SubCategory, + related_name='subcategories', blank=True, null=True, + db_table=u'subcategory_areas') order = models.IntegerField(_("Order")) available = models.BooleanField(_("Available")) - subcategories = models.ManyToManyField(SubCategory, related_name='areas') upper_left_corner = models.PointField(_("Upper left corner"), default='POINT(0 0)') lower_right_corner = models.PointField(_("Lower right corner"), diff --git a/chimere/main/widgets.py b/chimere/main/widgets.py index 6b5e544..44e8ac8 100644 --- a/chimere/main/widgets.py +++ b/chimere/main/widgets.py @@ -33,6 +33,11 @@ URL_OSM_CSS = ["http://www.openlayers.org/api/theme/default/style.css"] URL_OSM_JS = ["http://www.openlayers.org/api/OpenLayers.js", "http://www.openstreetmap.org/openlayers/OpenStreetMap.js"] +class ManyToManyField_NoSyncdb(models.ManyToManyField): + def __init__(self, *args, **kwargs): + super(ManyToManyField_NoSyncdb, self).__init__(*args, **kwargs) + self.creates_table = False + def getMapJS(): '''Variable initialization for drawing the map ''' |