summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-09 14:12:36 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-09 14:12:36 +0200
commit4995e058f718507800ffd261131338b2dd9ef972 (patch)
tree894769f3c546130512a1b09247c36414c1709f3e /ishtar_common/admin.py
parentd3d0e42aeb8978502b173db7ca97fedf9e10b5e8 (diff)
downloadIshtar-4995e058f718507800ffd261131338b2dd9ef972.tar.bz2
Ishtar-4995e058f718507800ffd261131338b2dd9ef972.zip
Serializers: import action - manage partial export by type of data
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py63
1 files changed, 62 insertions, 1 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 7da8265cd..25dffcf72 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -75,7 +75,7 @@ from archaeological_finds import forms as find_forms, \
forms_treatments as treatment_forms
from archaeological_warehouse import forms as warehouse_forms
-from ishtar_common.tasks import launch_export
+from ishtar_common.tasks import launch_export, launch_import
csrf_protect_m = method_decorator(csrf_protect)
@@ -1447,6 +1447,67 @@ class ExportTaskAdmin(admin.ModelAdmin):
admin_site.register(models.ExportTask, ExportTaskAdmin)
+"""
+class Media:
+ js = (
+ 'js/myscript.js', # project's static folder ( /static/js/myscript.js )
+ )
+
+$(document).ready(function(){
+ $('form').submit(function() {
+ var c = confirm("continue submitting ?");
+ return c;
+ });
+})
+
+
+"""
+
+
+def launch_import_action(modeladmin, request, queryset):
+ model = modeladmin.model
+ back_url = reverse(
+ 'admin:%s_%s_changelist' % (
+ model._meta.app_label,
+ model._meta.model_name)
+ ) + '?' + urllib.parse.urlencode(request.GET)
+ if queryset.count() != 1:
+ messages.add_message(
+ request, messages.ERROR, str(_("Select only one task."))
+ )
+ return HttpResponseRedirect(back_url)
+
+ import_task = queryset.all()[0]
+
+ if import_task.state != "C":
+ messages.add_message(
+ request, messages.ERROR, str(
+ _("Import already imported/scheduled."))
+ )
+ return HttpResponseRedirect(back_url)
+
+ import_task.state = "S"
+ import_task.save()
+
+ if not settings.USE_BACKGROUND_TASK:
+ return launch_import(import_task)
+ return launch_import.delay(import_task)
+
+
+launch_import_action.short_description = _("Launch import")
+
+
+class ImportTaskAdmin(admin.ModelAdmin):
+ exclude = ('creation_date', 'launch_date', 'finished_date')
+ list_display = ['creation_date', "source", 'state', 'launch_date',
+ 'finished_date']
+ list_filter = ['state']
+ actions = [launch_import_action]
+
+
+admin_site.register(models.ImportTask, ImportTaskAdmin)
+
+
class UserProfileAdmin(admin.ModelAdmin):
list_display = ['person', 'profile_type', 'area_labels']
list_filter = ['profile_type']