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-15 19:32:59 +0200 |
commit | d74d9c7e9f2da23c070ba15d8885c130956fd259 (patch) | |
tree | 36d7e5e721c93f59918c1f3fc23243565a934f29 /ishtar_common/models_imports.py | |
parent | c72cd53a2f43379b8119c972221ccdb162afc924 (diff) | |
download | Ishtar-d74d9c7e9f2da23c070ba15d8885c130956fd259.tar.bz2 Ishtar-d74d9c7e9f2da23c070ba15d8885c130956fd259.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", |