summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/admin.py68
1 files changed, 32 insertions, 36 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 26ceb01cd..a321a6690 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -297,11 +297,11 @@ class MergeActionAdmin:
if form.is_valid():
merge_in = items[form.cleaned_data['merge_in']]
merged = []
- for key in items.keys():
+ for key, value in items.items():
if key == str(merge_in.pk):
continue
- merge_model_objects(merge_in, items[key])
- merged.append(str(items[key]))
+ merge_model_objects(merge_in, value)
+ merged.append(str(value))
messages.add_message(
request, messages.INFO,
str(_("{} merged into {}.")).format(' ; '.join(merged),
@@ -503,17 +503,11 @@ class ImportActionAdmin(admin.ModelAdmin):
continue
if isinstance(field, CharField):
if not value:
- value = u""
- if isinstance(field, IntegerField):
- if not value:
- value = None
- else:
- value = int(value)
+ value = ""
+ elif isinstance(field, IntegerField):
+ value = None if not value else int(value)
elif isinstance(field, FloatField):
- if not value:
- value = None
- else:
- value = float(value)
+ value = None if not value else float(value)
elif isinstance(field, BooleanField):
if value in ('true', 'True', '1'):
value = True
@@ -522,9 +516,7 @@ class ImportActionAdmin(admin.ModelAdmin):
else:
value = None
elif isinstance(field, ForeignKey):
- if not value:
- value = None
- else:
+ if value:
model = field.rel.to
try:
value = model.objects.get(
@@ -533,6 +525,8 @@ class ImportActionAdmin(admin.ModelAdmin):
except model.DoesNotExist:
missing_parent.append(row.pop(k))
continue
+ else:
+ value = None
row[k] = value
values = {
slug_col: slug,
@@ -540,11 +534,11 @@ class ImportActionAdmin(admin.ModelAdmin):
}
obj, c = self.model.objects.get_or_create(
**values)
- if not c:
+ if c:
+ created += 1
+ else:
updated += 1
self.model.objects.filter(pk=obj.pk).update(**row)
- else:
- created += 1
if created:
self.message_user(
request,
@@ -704,11 +698,9 @@ class ImportGEOJSONActionAdmin(object):
tempdir = tempfile.mkdtemp()
tmpfilename = tempdir + os.sep + "dest_file"
- tmpfile = open(tmpfilename, 'wb+')
- for chunk in json_file_obj.chunks():
- tmpfile.write(chunk)
- tmpfile.close()
-
+ with open(tmpfilename, 'wb+') as tmpfile:
+ for chunk in json_file_obj.chunks():
+ tmpfile.write(chunk)
json_filename = None
if zipfile.is_zipfile(tmpfilename):
zfile = zipfile.ZipFile(tmpfilename)
@@ -736,8 +728,6 @@ class ImportGEOJSONActionAdmin(object):
None) or '',
"surface_unit": int(request.POST.get('surface_unit'))
}
- created = 0
- updated = 0
with open(json_filename) as json_file_obj:
json_file = json_file_obj.read()
try:
@@ -750,6 +740,8 @@ class ImportGEOJSONActionAdmin(object):
request, error, base_dct, tempdir)
error_count = 0
+ created = 0
+ updated = 0
for idx, feat in enumerate(dct['features']):
trace_error = True
if error_count == 6:
@@ -1145,9 +1137,11 @@ class ProfileTypeSummaryAdmin(admin.ModelAdmin):
profile_types = list(
qs.order_by("label")
)
- rights = {}
- for profile_type in profile_types:
- rights[profile_type.pk] = [g.pk for g in profile_type.groups.all()]
+ rights = {
+ profile_type.pk: [g.pk for g in profile_type.groups.all()]
+ for profile_type in profile_types
+ }
+
groups = []
ok = mark_safe(
u'<img src="{}admin/img/icon-yes.svg" alt="True">'.format(
@@ -1283,12 +1277,12 @@ serialize_importer_action = serialize_action("common_imports",
serialize_importer_action.short_description = SERIALIZE_DESC
+@admin.register(models.ImporterType, site=admin_site)
class ImporterTypeAdmin(ImportJSONActionAdmin):
list_display = ('name', 'associated_models', 'available')
actions = importer_type_actions + [serialize_importer_action]
-
-
-admin_site.register(models.ImporterType, ImporterTypeAdmin)
+ form = make_ajax_form(models.ImporterType, {'users': 'ishtaruser'})
+ prepopulated_fields = {"slug": ("name",)}
class RegexpAdmin(admin.ModelAdmin):
@@ -1568,11 +1562,13 @@ def get_choices_form():
cache_key, value = get_cache(models.CustomForm, ['associated-forms'])
if value:
return value
- forms = []
-
register, register_fields = models.CustomForm.register()
- for slug in register.keys():
- forms.append((slug, models.CustomForm._register[slug].form_admin_name))
+ forms = [
+ (slug, models.CustomForm._register[slug].form_admin_name)
+ for slug in register.keys()
+ ]
+
+
forms = sorted(forms, key=lambda x: x[1])
cache.set(cache_key, forms, settings.CACHE_TIMEOUT)
return forms