1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# Generated by Django 4.2.19 on 2026-02-25 09:44
import sys
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
from django.utils.translation import gettext_lazy as _
from ishtar_common.utils_migrations import update_import_key, print_progress
def update_importkey(apps, __):
updated = 0
GeoVectorData = apps.get_model("ishtar_common", "geovectordata")
total = GeoVectorData.objects.count()
sys.stdout.write("\n")
for idx, data in enumerate(GeoVectorData.objects.all()):
print_progress(idx, total)
updated += 1 if update_import_key(data) else 0
def update_groups(apps, __):
Permission = apps.get_model("auth", "Permission")
Group = apps.get_model("auth", "Group")
ContentType = apps.get_model("contenttypes", "ContentType")
ct = ContentType.objects.get(app_label='ishtar_common', model='import')
update = (
("Imports : lecture", "view_gis_import", _("Can export to QGIS")),
("Imports rattachés : lecture", "view_own_gis_import", _("Can export own to QGIS")),
("Imports : ajout", "change_gis_import", _("Can create import from QGIS")),
)
for gp_name, codename, p_name in update:
gp = Group.objects.filter(name=gp_name)
if gp.exists():
perm = Permission.objects.filter(codename=codename)
if perm.exists():
perm = perm.all()[0]
else:
perm = Permission.objects.create(
codename=codename,
name=p_name,
content_type=ct
)
gp = gp.all()[0]
gp.permissions.add(perm)
class Migration(migrations.Migration):
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
('ishtar_common', '0268_add_timezone_django_v4'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='UserRequestToken',
fields=[
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
('key', models.CharField(max_length=6, unique=True, verbose_name='Key')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='user_request_token', serialize=False, to=settings.AUTH_USER_MODEL, verbose_name='User')),
('access_type', models.CharField(choices=[('R', 'GIS - read'), ('W', 'GIS - read/write')], default='R', max_length=1, verbose_name='Access type')),
('name', models.TextField(verbose_name='Name')),
('limit_date', models.DateField(blank=True, null=True, verbose_name='Limit date')),
],
options={
'verbose_name': 'API - GIS - Request token',
'verbose_name_plural': 'API - GIS - Request tokens',
},
),
migrations.AlterModelOptions(
name='importertype',
options={'ordering': ('name',), 'permissions': (('view_gis_importer', 'Can export to QGIS'), ('view_own_gis_importer', 'Can export own to QGIS'), ('change_gis_importer', 'Can import from QGIS'), ('change_own_gis_importer', 'Can import own to QGIS')), 'verbose_name': 'Importer - Type', 'verbose_name_plural': 'Importer - Types'},
),
migrations.AddField(
model_name='ishtarsiteprofile',
name='gis_connector',
field=models.BooleanField(default=False, verbose_name='GIS connector'),
),
migrations.AlterField(
model_name='importertype',
name='type',
field=models.CharField(choices=[('tab', 'Table'), ('gis', 'GIS'), ('qgs', 'QGIS')], default='tab', max_length=3, verbose_name='Type'),
),
migrations.CreateModel(
name='UserToken',
fields=[
('key', models.CharField(max_length=40, primary_key=True, serialize=False, verbose_name='Key')),
('name', models.TextField(verbose_name='Name')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
('access_type', models.CharField(choices=[('R', 'GIS - read'), ('W', 'GIS - read/write')], default='R', max_length=1, verbose_name='Access type')),
('limit_date', models.DateField(blank=True, null=True, verbose_name='Limit date')),
('last_ip', models.GenericIPAddressField(blank=True, null=True, verbose_name='Last IP')),
('last_access', models.DateField(auto_now_add=True, verbose_name='Last access date')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_token', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'API - GIS - Token',
'verbose_name_plural': 'API - GIS - Tokens',
'ordering': ('user', 'name', 'limit_date'),
},
),
migrations.CreateModel(
name='ImportChunk',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('send_datetime', models.DateTimeField(verbose_name='Send date')),
('chunk', models.TextField(verbose_name='Chunk')),
('number', models.IntegerField(verbose_name='Number')),
('total', models.IntegerField(verbose_name='Total')),
('import_immediatly', models.BooleanField(default=False, verbose_name='Import Immediatly')),
('importer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.importertype', verbose_name='Importer')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.ishtaruser', verbose_name='User')),
],
options={
'verbose_name': 'Import - Chunk',
'verbose_name_plural': 'Import - Chunks',
},
),
migrations.RunPython(update_importkey),
migrations.AddField(
model_name='import',
name='import_immediatly',
field=models.BooleanField(default=False, verbose_name='Import Immediatly'),
),
migrations.AddField(
model_name='importertype',
name='gis_type',
field=models.ForeignKey(blank=True, help_text='For QGIS importer type. Geographic data type used for import and export.', null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.geodatatype'),
),
migrations.AlterModelOptions(
name='import',
options={'permissions': (('view_own_import', 'Can view own Import'), ('add_own_import', 'Can add own Import'), ('change_own_import', 'Can change own Import'), ('delete_own_import', 'Can delete own Import'), ('view_gis_import', 'Can export to QGIS'), ('view_own_gis_import', 'Can export own to QGIS'), ('change_gis_import', 'Can import from QGIS'), ('change_own_gis_import', 'Can import own to QGIS')), 'verbose_name': 'Import - Import', 'verbose_name_plural': 'Import - Imports'},
),
migrations.RunPython(update_groups)
]
|