diff options
author | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2010-02-21 20:25:28 +0000 |
---|---|---|
committer | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2010-02-21 20:25:28 +0000 |
commit | ea04bf9de68759d90dad4c5166d95e4fa305e499 (patch) | |
tree | 97897c3a55f9df4e531392727f961b647ca8d02d | |
parent | 92eef00310b76224cfbc0e7d13bb91a5bd6c455a (diff) | |
download | Chimère-ea04bf9de68759d90dad4c5166d95e4fa305e499.tar.bz2 Chimère-ea04bf9de68759d90dad4c5166d95e4fa305e499.zip |
Management of links between categories and areas in administration - #79
git-svn-id: http://www.peacefrogs.net/svn/chimere/trunk@64 9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864
-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 ''' |