diff options
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 |
commit | ad9727f91af7d1fdde26bb29118d99623d6c65cb (patch) | |
tree | 894769f3c546130512a1b09247c36414c1709f3e /ishtar_common/admin.py | |
parent | 8a17c17d45a2c9b63c5a70c4a6e3e56cc3c942d4 (diff) | |
download | Ishtar-ad9727f91af7d1fdde26bb29118d99623d6c65cb.tar.bz2 Ishtar-ad9727f91af7d1fdde26bb29118d99623d6c65cb.zip |
Serializers: import action - manage partial export by type of data
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 63 |
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'] |