diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-21 20:08:20 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-24 18:32:22 +0200 |
| commit | 5f1f3d5a68f457ad344240302dc9a36eba517b20 (patch) | |
| tree | fd1d9079d29c8a4943d4e5a0765e830dfe6079d6 /ishtar_common/models_imports.py | |
| parent | 337dfccf78b25e7c9805b4e90a4d01b99cf2bb17 (diff) | |
| download | Ishtar-5f1f3d5a68f457ad344240302dc9a36eba517b20.tar.bz2 Ishtar-5f1f3d5a68f457ad344240302dc9a36eba517b20.zip | |
✨ GIS API: import chunk model
Diffstat (limited to 'ishtar_common/models_imports.py')
| -rw-r--r-- | ishtar_common/models_imports.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 22b0ff97f..4b72ce985 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1438,6 +1438,36 @@ def convert_geom(feature, srid): return feature +class ImportChunk(models.Model): + """ + Import chunk from QGIS plugin. + When all chunk have been collected Import is created. + """ + importer = models.ForeignKey("ImporterType", verbose_name=_("Importer"), + on_delete=models.CASCADE) + user = models.ForeignKey("IshtarUser", verbose_name=_("User"), + on_delete=models.CASCADE) + send_datetime = models.DateTimeField(_("Send date")) + chunk = models.TextField(_("Chunk")) + number = models.IntegerField(_("Number")) + total = models.IntegerField(_("Total")) + import_immediatly = models.BooleanField("Import Immediatly", default=False) + + class Meta: + verbose_name = _("Import - Chunk") + verbose_name_plural = _("Import - Chunks") + + @classmethod + def clean_old(cls): + """ + Remove all chunk older than 3 hours + """ + date = datetime.datetime.now() - datetime.timedelta(hours=3) + q = cls.objects.filter(send_datetime__lte=date) + for chunk in list(q.all()): + q.delete() + + IMPORT_GEOMETRY = { "Point": "point_2d", "3D Point": "point_3d", |
