summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py42
1 files changed, 26 insertions, 16 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 8d41d1cc6..345bd0025 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -55,6 +55,7 @@ from weasyprint.fonts import FontConfiguration
from bootstrap_datepicker.widgets import DateField
+from ishtar_common.urls_converters import DateTimeConverter
from ishtar_common.utils import (
API_MAIN_MODELS,
check_model_access_control,
@@ -368,9 +369,9 @@ def show_source_item(request, source_id, model, name, base_dct, extra_dct):
permissions = ["permission_view_document"]
for p in permissions:
dct[p] = True
- dct["permission_change_own_document"] = False
- dct["permission_change_document"] = False
-
+ for perm in ["document", "findbasket"]:
+ dct[f"permission_change_own_{perm}"] = False
+ dct[f"permission_change_{perm}"] = False
tpl = loader.get_template(f"ishtar/sheet_{name}_window.html")
content = tpl.render(dct, request)
return HttpResponse(content, content_type="application/xhtml")
@@ -477,8 +478,9 @@ def show_item(model, name, extra_dct=None, model_for_perms=None, callback=None):
for perm in Permission.objects.filter(
codename__startswith='view_').values_list("codename", flat=True).all():
dct["permission_" + perm] = False
- dct["permission_change_own_document"] = False
- dct["permission_change_document"] = False
+ for perm in ["document", "findbasket"]:
+ dct[f"permission_change_own_{perm}"] = False
+ dct[f"permission_change_{perm}"] = False
if hasattr(request.user, "ishtaruser") and request.user.ishtaruser:
cache_key = "{}-{}-{}".format(
settings.PROJECT_SLUG,
@@ -503,9 +505,12 @@ def show_item(model, name, extra_dct=None, model_for_perms=None, callback=None):
dct["get_import_updated"] = item.get_imports_updated(request.user, limit=5)
if hasattr(item, "history") and request.user.is_superuser:
+
if date:
try:
- date = datetime.datetime.strptime(date, "%Y-%m-%dT%H:%M:%S.%f")
+ if not isinstance(date, datetime.datetime):
+ date = datetime.datetime.strptime(
+ date, DateTimeConverter.date_format)
dct["IS_HISTORY"] = True
if item.get_last_history_date() != date:
item = item.get_previous(date=date)
@@ -630,7 +635,8 @@ def revert_item(model):
def func(request, pk, date, **dct):
try:
item = model.objects.get(pk=pk)
- date = datetime.datetime.strptime(date, "%Y-%m-%dT%H:%M:%S.%f")
+ if not isinstance(date, datetime.datetime):
+ date = datetime.datetime.strptime(date, "%Y-%m-%dT%H:%M:%S.%f")
item.rollback(date)
except (ObjectDoesNotExist, ValueError, HistoryError):
return HttpResponse(None, content_type="text/plain")
@@ -2897,6 +2903,19 @@ def get_item(
if not no_link:
try:
curl = reverse("show-" + default_name, args=[data[0], ""])
+ except NoReverseMatch:
+ try:
+ curl = reverse("show-" + default_name, args=[data[0]])
+ except NoReverseMatch:
+ logger.warning(
+ '**WARN "show-'
+ + default_name
+ + '" args ('
+ + str(data[0])
+ + ") url not available"
+ )
+ curl, lnk = "", ""
+ if curl:
if not curl.endswith("/"):
curl += "/"
lnk_template = link_template
@@ -2908,15 +2927,6 @@ def get_item(
lnk = lnk.replace("<lock>", lock)
else:
lnk = lnk.replace("<lock>", "")
- except NoReverseMatch:
- logger.warning(
- '**WARN "show-'
- + default_name
- + '" args ('
- + str(data[0])
- + ") url not available"
- )
- lnk = ""
res["link"] = lnk
for idx, value in enumerate(data[1:]):
if not value or idx >= len(table_cols):