diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-18 22:59:43 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-18 22:59:43 +0200 | 
| commit | e886e8a1a79880bed9cd0ec480a0658ae93ad400 (patch) | |
| tree | e6da7c67ae8c7a624cbb49399ae9f8b45be8ea30 | |
| parent | c5571208a3d7a50d24226132d6ff77f8edd03921 (diff) | |
| download | Ishtar-e886e8a1a79880bed9cd0ec480a0658ae93ad400.tar.bz2 Ishtar-e886e8a1a79880bed9cd0ec480a0658ae93ad400.zip | |
New migrations: add views
| -rw-r--r-- | archaeological_context_records/migrations/0004_views.py | 15 | ||||
| -rw-r--r-- | archaeological_context_records/models.py | 5 | ||||
| -rw-r--r-- | archaeological_files/migrations/0003_views.py | 16 | ||||
| -rw-r--r-- | archaeological_files/models.py | 13 | ||||
| -rw-r--r-- | archaeological_finds/migrations/0003_views.py | 19 | ||||
| -rw-r--r-- | archaeological_operations/migrations/0003_views.py | 16 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 18 | 
7 files changed, 100 insertions, 2 deletions
| diff --git a/archaeological_context_records/migrations/0004_views.py b/archaeological_context_records/migrations/0004_views.py new file mode 100644 index 000000000..d34b9e62b --- /dev/null +++ b/archaeological_context_records/migrations/0004_views.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from archaeological_context_records.models import  RecordRelationView + +class Migration(migrations.Migration): + +    dependencies = [ +        ('archaeological_context_records', '0003_auto_20170414_2123'), +    ] + +    operations = [ +        migrations.RunSQL(RecordRelationView.CREATE_SQL) +    ] diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 3fdc04f21..0a5ab7cbc 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -545,7 +545,7 @@ post_delete.connect(post_delete_record_relation, sender=RecordRelations)  class RecordRelationView(models.Model): -    """ +    CREATE_SQL = """      CREATE VIEW record_relations AS          SELECT DISTINCT right_record_id as id,              right_record_id, @@ -557,6 +557,9 @@ class RecordRelationView(models.Model):      CREATE RULE record_relations_del AS ON DELETE TO record_relations          DO INSTEAD DELETE FROM record_relations where id=NULL;      """ +    DELETE_SQL = """ +        DROP VIEW record_relations; +    """      TABLE_COLS = [          "relation_type",          "right_record__label", "right_record__unit", "right_record__parcel", diff --git a/archaeological_files/migrations/0003_views.py b/archaeological_files/migrations/0003_views.py new file mode 100644 index 000000000..5e3d891ad --- /dev/null +++ b/archaeological_files/migrations/0003_views.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from archaeological_files.models import FileByDepartment + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('archaeological_files', '0002_auto_20170414_2123'), +    ] + +    operations = [ +        migrations.RunSQL(FileByDepartment.CREATE_SQL) +    ] diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 412cceb46..2bd5eba9c 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -554,6 +554,19 @@ class FileByDepartment(models.Model):      """      Database view for dashboard      """ +    CREATE_SQL = """ +    CREATE VIEW file_department (id, department_id, file_id) as +        select town."id", town."departement_id", file_towns."file_id" +            from ishtar_common_town town +            inner join archaeological_files_file_towns file_towns +                on file_towns."town_id"=town."id" +            order by town."departement_id"; +    CREATE RULE file_department_delete +                        AS ON DELETE TO file_department DO INSTEAD(); +    """ +    DELETE_SQL = """ +    DROP VIEW file_department; +    """      file = models.ForeignKey(File, verbose_name=_(u"File"))      department = models.ForeignKey(Department, verbose_name=_(u"Department"),                                     blank=True, null=True) diff --git a/archaeological_finds/migrations/0003_views.py b/archaeological_finds/migrations/0003_views.py new file mode 100644 index 000000000..e2edaa206 --- /dev/null +++ b/archaeological_finds/migrations/0003_views.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from archaeological_finds.models_treatments import FindTreatments, \ +    FindDownstreamTreatments, FindUpstreamTreatments + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('archaeological_finds', '0002_auto_20170414_2123'), +    ] + +    operations = [ +        migrations.RunSQL(FindUpstreamTreatments.CREATE_SQL + +                          FindDownstreamTreatments.CREATE_SQL + +                          FindTreatments.CREATE_SQL) +    ] diff --git a/archaeological_operations/migrations/0003_views.py b/archaeological_operations/migrations/0003_views.py new file mode 100644 index 000000000..1b8dd201f --- /dev/null +++ b/archaeological_operations/migrations/0003_views.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from archaeological_operations.models import OperationByDepartment + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('archaeological_operations', '0002_auto_20170414_2123'), +    ] + +    operations = [ +        migrations.RunSQL(OperationByDepartment.CREATE_SQL) +    ] diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index bebeba240..0548c92e4 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2012-2016 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2012-2017 É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 Affero General Public License as @@ -844,6 +844,22 @@ class OperationByDepartment(models.Model):      """      Database view for dashboard      """ +    CREATE_SQL = """ +    CREATE VIEW operation_department (id, department_id, operation_id) as +        select town."id", town."departement_id", +               operation_towns."operation_id" +                from ishtar_common_town town +                inner join archaeological_operations_operation_towns +                           operation_towns +                    on operation_towns."town_id"=town."id" +                order by town."departement_id"; +    CREATE RULE operation_department_delete +              AS ON DELETE TO operation_department DO INSTEAD(); +    """ +    DELETE_SQL = """ +    DROP VIEW operation_department; +    """ +      operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"))      department = models.ForeignKey(Department, verbose_name=_(u"Department"),                                     blank=True, null=True) | 
