summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-04-12 19:19:54 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-04-12 19:19:54 +0200
commit9bf6fb03580a6a277502ca68738f84af7675445f (patch)
treec1fba513ad10b3758a49cdbfd2989fb44012f031 /ishtar/furnitures/views.py
parent210c91c1cb05f74c574f4fd28e23e5f1622afaa2 (diff)
downloadIshtar-9bf6fb03580a6a277502ca68738f84af7675445f.tar.bz2
Ishtar-9bf6fb03580a6a277502ca68738f84af7675445f.zip
Add a rollback button (closes #349)
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index 8dea8cb2f..107d9f3ea 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -289,7 +289,7 @@ def show_item(model, name):
datetime.datetime.now().strftime('%M%s'))
if date:
try:
- date = datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f')
+ date = datetime.datetime.strptime(date, '%Y-%m-%dT%H:%M:%S.%f')
item = item.get_previous(date=date)
assert item != None
except (ValueError, AssertionError):
@@ -369,8 +369,21 @@ def show_item(model, name):
return HttpResponse(content, content_type="application/xhtml")
return func
+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')
+ item.rollback(date)
+ except (ObjectDoesNotExist, ValueError, HistoryError):
+ return HttpResponse(None, mimetype='text/plain')
+ return HttpResponse("True", mimetype='text/plain')
+ return func
+
+
get_file = get_item(models.File, 'get_file', 'file')
show_file = show_item(models.File, 'file')
+revert_file = revert_item(models.File)
def autocomplete_operation(request, non_closed=True):
if not request.user.has_perm('furnitures.view_operation', models.Operation)\
@@ -399,6 +412,7 @@ def autocomplete_operation(request, non_closed=True):
get_operation = get_item(models.Operation, 'get_operation', 'operation')
show_operation = show_item(models.Operation, 'operation')
+revert_operation = revert_item(models.Operation)
get_administrativeactfile = get_item(models.AdministrativeAct,
'get_administrativeactfile', 'administrativeactfile',