diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-21 20:08:20 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-22 10:22:35 +0200 |
commit | 53b1329634970640c3959a797ed21108466fc8e7 (patch) | |
tree | 2f22b5fce12f60a056fe9a918ba1387b3ffc0e52 /ishtar_common/models_imports.py | |
parent | d1435a3d73765fa5e6822fc86bd4d77780641974 (diff) | |
download | Ishtar-53b1329634970640c3959a797ed21108466fc8e7.tar.bz2 Ishtar-53b1329634970640c3959a797ed21108466fc8e7.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 b8626358c..3d47ba263 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", |