summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
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
commit53b1329634970640c3959a797ed21108466fc8e7 (patch)
tree2f22b5fce12f60a056fe9a918ba1387b3ffc0e52 /ishtar_common/models_imports.py
parentd1435a3d73765fa5e6822fc86bd4d77780641974 (diff)
downloadIshtar-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.py30
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",