summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/main/forms.py4
-rw-r--r--chimere/main/models.py9
-rw-r--r--chimere/main/widgets.py5
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
'''