summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-24 12:16:56 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-24 12:16:56 +0200
commit50a238daaba8feb6a1572dd1ec889103da11eae1 (patch)
tree78945cc4e255753c17837782036100953383715a /chimere/models.py
parenta61df3190b2b2a0f5491930ff00909b61c4bba1e (diff)
downloadChimère-50a238daaba8feb6a1572dd1ec889103da11eae1.tar.bz2
Chimère-50a238daaba8feb6a1572dd1ec889103da11eae1.zip
Adaptations vers Django version 2.2
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py82
1 files changed, 41 insertions, 41 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 2f8f792..a58a628 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -42,10 +42,10 @@ from django.contrib.postgres.search import SearchVectorField, SearchVector, \
SearchQuery, TrigramSimilarity
from django.core.files import File
from django.core.exceptions import ObjectDoesNotExist
-from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.models import Q, Count
from django.db.models.signals import post_save, pre_save
from django.template import defaultfilters
+from django.urls import reverse, NoReverseMatch
from django.utils.translation import ugettext_lazy as _
from chimere.widgets import HiddenPointChooserWidget, PointField, RouteField, \
@@ -207,7 +207,7 @@ class Color(models.Model):
blank=True, null=True)
order = models.IntegerField(_("Order"))
color_theme = models.ForeignKey(ColorTheme, verbose_name=_("Color theme"),
- related_name='colors')
+ related_name='colors', on_delete=models.CASCADE)
class Meta:
ordering = ["order"]
@@ -275,7 +275,7 @@ class Icon(models.Model):
class SubCategory(models.Model):
category = models.ForeignKey(Category, verbose_name=_("Category"),
- related_name='subcategories')
+ related_name='subcategories', on_delete=models.CASCADE)
name = models.CharField(_("Name"), max_length=150)
available = models.BooleanField(_("Available"), default=True)
submission = models.BooleanField(_("Available for submission"),
@@ -288,19 +288,19 @@ class SubCategory(models.Model):
order = models.IntegerField(_("Order"), default=1000)
dated = models.BooleanField(_("Is dated"), default=False)
description = models.TextField(blank=True, null=True)
- icon = models.ForeignKey(Icon, verbose_name=_("Icon"))
+ icon = models.ForeignKey(Icon, verbose_name=_("Icon"), on_delete=models.CASCADE)
hover_icon = models.ForeignKey(
Icon, verbose_name=_("Hover icon"), blank=True, null=True,
- related_name='subcat_hovered')
+ related_name='subcat_hovered', on_delete=models.SET_NULL)
menu_icon = models.ForeignKey(
Icon, verbose_name=_("Menu icon"), blank=True, null=True,
- related_name='subcat_menu')
+ related_name='subcat_menu', on_delete=models.SET_NULL)
menu_icon_off = models.ForeignKey(
Icon, verbose_name=_("Menu icon off"), blank=True, null=True,
- related_name='subcat_menu_off')
+ related_name='subcat_menu_off', on_delete=models.SET_NULL)
color_theme = models.ForeignKey(
ColorTheme, verbose_name=_("Color theme"), blank=True, null=True,
- related_name='subcategories', help_text=_("For route and polygon"))
+ related_name='subcategories', help_text=_("For route and polygon"), on_delete=models.SET_NULL)
as_layer = models.BooleanField(_("Displayed in the layer menu"),
default=False)
weight_formula = models.TextField(_("Weight formula"), default="",
@@ -424,8 +424,8 @@ class SubCategoryUserLimit(models.Model):
Moderation limit for user by category
"""
subcategory = models.ForeignKey(
- SubCategory, related_name='limited_for_user')
- user = models.ForeignKey(User, related_name='subcategory_limit_to')
+ SubCategory, related_name='limited_for_user', on_delete=models.CASCADE)
+ user = models.ForeignKey(User, related_name='subcategory_limit_to', on_delete=models.CASCADE)
def __str__(self):
return "{} / {}".format(self.user, self.subcategory)
@@ -545,8 +545,8 @@ class ImporterKeyCategories(models.Model):
Association between key and categories
"""
importer = models.ForeignKey(Importer, verbose_name=_("Importer"),
- related_name='key_categories')
- category = models.ForeignKey(SubCategory, verbose_name=_("Category"))
+ related_name='key_categories', on_delete=models.CASCADE)
+ category = models.ForeignKey(SubCategory, verbose_name=_("Category"), on_delete=models.CASCADE)
key = models.CharField(_("Import key"), max_length=200)
class Meta:
@@ -1193,14 +1193,14 @@ class Marker(GeographicItem):
"""
ref_item = models.ForeignKey(
"Marker", blank=True, null=True, verbose_name=_("Reference marker"),
- related_name='submited_marker')
+ related_name='submited_marker', on_delete=models.SET_NULL)
point = PointField(_("Localisation"),
srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
available_date = models.DateTimeField(_("Available Date"), blank=True,
null=True) # used by feeds
is_front_page = models.NullBooleanField(_("Is front page"), blank=True,
null=True)
- objects = models.GeoManager()
+ objects = models.Manager()
geom_attr = 'point'
class Meta:
@@ -1387,7 +1387,7 @@ class Polygon(GeographicItem):
"""
ref_item = models.ForeignKey(
"Polygon", blank=True, null=True, verbose_name=_("Reference polygon"),
- related_name='submited_polygon')
+ related_name='submited_polygon', on_delete=models.SET_NULL)
polygon = PolygonField(
_("Polygon"), srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
picture = models.ImageField(
@@ -1401,7 +1401,7 @@ class Polygon(GeographicItem):
inner_color = models.CharField(
_("Inner color"), max_length=200,
help_text=_("HTML code/name"), blank=True, null=True)
- objects = models.GeoManager()
+ objects = models.Manager()
geom_attr = 'polygon'
json_color_keys = ['color', 'inner_color']
default_values = {'color': "#000",
@@ -1472,7 +1472,7 @@ class AggregatedPolygon(models.Model):
Database view for aggregated polygons
"""
polygon = models.MultiPolygonField()
- subcategory = models.ForeignKey(SubCategory)
+ subcategory = models.ForeignKey(SubCategory, on_delete=models.CASCADE)
status = models.CharField(_("Status"), max_length=1, choices=STATUS)
class Meta:
@@ -1568,7 +1568,7 @@ class MultimediaExtension(models.Model):
name = models.CharField(_("Extension name"), max_length=6)
multimedia_type = models.ForeignKey(
MultimediaType, verbose_name=_("Associated multimedia type"),
- related_name='extensions')
+ related_name='extensions', on_delete=models.CASCADE)
class Meta:
verbose_name = _("Multimedia extension")
@@ -1582,16 +1582,16 @@ class MultimediaFile(models.Model):
name = models.CharField(_("Name"), max_length=150)
url = models.URLField(_("Url"), max_length=200)
order = models.IntegerField(_("Order"), default=1)
- multimedia_type = models.ForeignKey(MultimediaType, blank=True, null=True)
+ multimedia_type = models.ForeignKey(MultimediaType, blank=True, null=True, on_delete=models.SET_NULL)
miniature = models.BooleanField(
_("Display inside the description?"),
default=settings.CHIMERE_MINIATURE_BY_DEFAULT)
marker = models.ForeignKey(Marker, related_name='multimedia_files',
- blank=True, null=True)
+ blank=True, null=True, on_delete=models.SET_NULL)
route = models.ForeignKey('Route', related_name='multimedia_files',
- blank=True, null=True)
+ blank=True, null=True, on_delete=models.SET_NULL)
polygon = models.ForeignKey(Polygon, related_name='multimedia_files',
- blank=True, null=True)
+ blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
verbose_name = _("Multimedia file")
@@ -1666,11 +1666,11 @@ class PictureFile(models.Model):
blank=True, null=True)
order = models.IntegerField(_("Order"), default=1)
marker = models.ForeignKey(Marker, related_name='pictures', blank=True,
- null=True)
+ null=True, on_delete=models.SET_NULL)
route = models.ForeignKey('Route', related_name='pictures',
- blank=True, null=True)
+ blank=True, null=True, on_delete=models.SET_NULL)
polygon = models.ForeignKey(Polygon, related_name='pictures', blank=True,
- null=True)
+ null=True, on_delete=models.SET_NULL)
def __str__(self):
return self.name or ""
@@ -1835,11 +1835,11 @@ class Route(GeographicItem):
"""
ref_item = models.ForeignKey(
"Route", blank=True, null=True, verbose_name=_("Reference route"),
- related_name='submited_route')
+ related_name='submited_route', on_delete=models.SET_NULL)
route = RouteField(_("Route"),
srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
associated_file = models.ForeignKey(RouteFile, blank=True, null=True,
- verbose_name=_("Associated file"))
+ verbose_name=_("Associated file"), on_delete=models.SET_NULL)
picture = models.ImageField(
_("Image"), upload_to='upload', blank=True, null=True,
height_field='height', width_field='width')
@@ -1848,7 +1848,7 @@ class Route(GeographicItem):
color = models.CharField(
_("Color"), max_length=200, help_text=_("HTML code/name"),
blank=True, null=True)
- objects = models.GeoManager()
+ objects = models.Manager()
geom_attr = 'route'
json_color_keys = ['color']
default_values = {'color': '#000'}
@@ -1943,7 +1943,7 @@ class AggregatedRoute(models.Model):
Database view for aggregated routes
"""
route = models.MultiLineStringField()
- subcategory = models.ForeignKey(SubCategory)
+ subcategory = models.ForeignKey(SubCategory, on_delete=models.CASCADE)
status = models.CharField(_("Status"), max_length=1, choices=STATUS)
class Meta:
@@ -2180,7 +2180,7 @@ class Area(models.Model, SimpleArea):
_("Extra map definition"), blank=True, null=True,
help_text=_("Extra javascript script loaded for this area. "
"Carreful! To prevent breaking the map must be valid."))
- objects = models.GeoManager()
+ objects = models.Manager()
def __str__(self):
return self.name
@@ -2332,8 +2332,8 @@ def get_users_by_area(area):
class AreaLayers(models.Model):
- area = models.ForeignKey(Area)
- layer = models.ForeignKey(Layer)
+ area = models.ForeignKey(Area, on_delete=models.CASCADE)
+ layer = models.ForeignKey(Layer, on_delete=models.CASCADE)
order = models.IntegerField(_("Order"))
default = models.NullBooleanField(_("Default layer"))
@@ -2344,8 +2344,8 @@ class AreaLayers(models.Model):
class AreaOverlays(models.Model):
- area = models.ForeignKey(Area)
- overlay = models.ForeignKey(Overlay)
+ area = models.ForeignKey(Area, on_delete=models.CASCADE)
+ overlay = models.ForeignKey(Overlay, on_delete=models.CASCADE)
order = models.IntegerField(_("Order"))
class Meta:
@@ -2355,8 +2355,8 @@ class AreaOverlays(models.Model):
class AreaPages(models.Model):
- area = models.ForeignKey(Area)
- page = models.ForeignKey(Page)
+ area = models.ForeignKey(Area, on_delete=models.CASCADE)
+ page = models.ForeignKey(Page, on_delete=models.CASCADE)
order = models.IntegerField(_("Order"))
class Meta:
@@ -2443,7 +2443,7 @@ class PropertyModelChoice(models.Model):
Choices for property model
"""
propertymodel = models.ForeignKey(PropertyModel, related_name='choices',
- verbose_name=_("Property model"))
+ verbose_name=_("Property model"), on_delete=models.CASCADE)
value = models.CharField(_("Value"), max_length=150)
available = models.BooleanField(_("Available"), default=True)
@@ -2460,18 +2460,18 @@ class Property(models.Model):
"""
marker = models.ForeignKey(
Marker, verbose_name=_("Point of interest"), blank=True, null=True,
- related_name='properties'
+ related_name='properties', on_delete=models.SET_NULL
)
route = models.ForeignKey(
Route, verbose_name=_("Route"), blank=True, null=True,
- related_name='properties'
+ related_name='properties', on_delete=models.SET_NULL
)
polygon = models.ForeignKey(
Polygon, verbose_name=_("Polygon"), blank=True, null=True,
- related_name='properties'
+ related_name='properties', on_delete=models.SET_NULL
)
propertymodel = models.ForeignKey(PropertyModel,
- verbose_name=_("Property model"))
+ verbose_name=_("Property model"), on_delete=models.CASCADE)
value = models.TextField(_("Value"))
search_value = models.TextField(_("Search value"), blank=True, null=True,
help_text=_("Auto filled at save"))