summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/migrations/0075_auto__chg_field_find_container__chg_field_find_upstream_treatment__chg.py19
-rw-r--r--archaeological_finds/models_treatments.py17
2 files changed, 32 insertions, 4 deletions
diff --git a/archaeological_finds/migrations/0075_auto__chg_field_find_container__chg_field_find_upstream_treatment__chg.py b/archaeological_finds/migrations/0075_auto__chg_field_find_container__chg_field_find_upstream_treatment__chg.py
index 61b85da41..600f7ca74 100644
--- a/archaeological_finds/migrations/0075_auto__chg_field_find_container__chg_field_find_upstream_treatment__chg.py
+++ b/archaeological_finds/migrations/0075_auto__chg_field_find_container__chg_field_find_upstream_treatment__chg.py
@@ -3,12 +3,17 @@ import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
+from archaeological_finds.models_treatments import FindTreatments, \
+ FindDownstreamTreatments, FindUpstreamTreatments
class Migration(SchemaMigration):
def forwards(self, orm):
-
+ sql = FindTreatments.DELETE_SQL
+ sql += FindUpstreamTreatments.DELETE_SQL
+ sql += FindDownstreamTreatments.DELETE_SQL
+ db.execute(sql)
# Changing field 'Find.container'
db.alter_column('archaeological_finds_find', 'container_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['archaeological_warehouse.Container']))
@@ -23,8 +28,16 @@ class Migration(SchemaMigration):
# Changing field 'Find.collection'
db.alter_column('archaeological_finds_find', 'collection_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['archaeological_warehouse.Collection']))
+ sql = FindUpstreamTreatments.CREATE_SQL
+ sql += FindDownstreamTreatments.CREATE_SQL
+ sql += FindTreatments.CREATE_SQL
+ db.execute(sql)
def backwards(self, orm):
+ sql = FindTreatments.DELETE_SQL
+ sql += FindUpstreamTreatments.DELETE_SQL
+ sql += FindDownstreamTreatments.DELETE_SQL
+ db.execute(sql)
# Changing field 'Find.container'
db.alter_column('archaeological_finds_find', 'container_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['archaeological_warehouse.Container']))
@@ -40,6 +53,10 @@ class Migration(SchemaMigration):
# Changing field 'Find.collection'
db.alter_column('archaeological_finds_find', 'collection_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['archaeological_warehouse.Collection']))
+ sql = FindUpstreamTreatments.CREATE_SQL
+ sql += FindDownstreamTreatments.CREATE_SQL
+ sql += FindTreatments.CREATE_SQL
+ db.execute(sql)
models = {
'archaeological_context_records.activitytype': {
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 5e763085c..8fcda37c0 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -285,7 +285,7 @@ class AbsFindTreatments(models.Model):
class FindUpstreamTreatments(AbsFindTreatments):
- """
+ CREATE_SQL = """
CREATE VIEW find_uptreatments_tree AS
WITH RECURSIVE rel_tree AS (
SELECT id AS find_id, upstream_treatment_id, downstream_treatment_id,
@@ -316,6 +316,10 @@ class FindUpstreamTreatments(AbsFindTreatments):
CREATE RULE find_uptreatments_del AS ON DELETE TO find_uptreatments
DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL;
"""
+ DELETE_SQL = """
+ DROP VIEW find_uptreatments;
+ DROP VIEW find_uptreatments_tree;
+ """
TABLE_COLS = ['treatment__treatment_type',
'treatment__upstream',
'treatment__start_date', 'treatment__end_date',
@@ -333,7 +337,7 @@ class FindUpstreamTreatments(AbsFindTreatments):
class FindDownstreamTreatments(AbsFindTreatments):
- """
+ CREATE_SQL = """
CREATE VIEW find_downtreatments_tree AS
WITH RECURSIVE rel_tree AS (
SELECT id AS find_id, downstream_treatment_id, upstream_treatment_id,
@@ -364,6 +368,10 @@ class FindDownstreamTreatments(AbsFindTreatments):
CREATE RULE find_downtreatments_del AS ON DELETE TO find_downtreatments
DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL;
"""
+ DELETE_SQL = """
+ DROP VIEW find_downtreatments;
+ DROP VIEW find_downtreatments_tree;
+ """
TABLE_COLS = ['treatment__treatment_type',
'treatment__downstream',
'treatment__start_date', 'treatment__end_date',
@@ -381,7 +389,7 @@ class FindDownstreamTreatments(AbsFindTreatments):
class FindTreatments(AbsFindTreatments):
- """
+ CREATE_SQL = """
CREATE VIEW find_treatments AS
SELECT find_id, treatment_id, treatment_nb, TRUE as upstream
FROM find_uptreatments
@@ -394,6 +402,9 @@ class FindTreatments(AbsFindTreatments):
CREATE RULE find_treatments_del AS ON DELETE TO find_treatments
DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL;
"""
+ DELETE_SQL = """
+ DROP VIEW find_treatments;
+ """
upstream = models.BooleanField(_(u"Is upstream"))
class Meta: