summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 7b7a890fb..b44e07f48 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -65,7 +65,7 @@ from ishtar_common.models import get_current_profile
from ishtar_common.templatetags.link_to_window import simple_link_to_window
from ishtar_common.utils import clean_session_cache, CSV_OPTIONS, \
get_field_labels_from_path, get_random_item_image_link, shortify, \
- dict_to_tuple, put_session_message
+ dict_to_tuple, put_session_message, get_model_by_slug
from ishtar_common.widgets import JQueryAutoComplete
from .views_item import CURRENT_ITEM_KEYS, CURRENT_ITEM_KEYS_DICT, \
@@ -973,6 +973,24 @@ def merge_action(model, form, key):
return merge
+def regenerate_external_id(request):
+ if not request.user.is_superuser:
+ raise Http404()
+ model = None
+ for key in request.GET:
+ model = get_model_by_slug(key)
+ if model:
+ break
+ if not model:
+ raise Http404()
+ try:
+ item = model.objects.get(pk=request.GET[model.SLUG])
+ except model.DoesNotExist:
+ raise Http404()
+ item.regenerate_external_id()
+ return HttpResponseRedirect(reverse("success"))
+
+
person_merge = merge_action(models.Person, forms.MergePersonForm, 'person')
organization_merge = merge_action(
models.Organization,