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.py55
1 files changed, 40 insertions, 15 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index cfe98cff1..74aa589c1 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -37,7 +37,8 @@ from django.shortcuts import redirect, render
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext, ugettext_lazy as _
from django.views.generic import ListView, UpdateView, TemplateView
-from django.views.generic.edit import CreateView, DeleteView, FormView
+from django.views.generic.edit import CreateView, DeleteView, FormView, \
+ UpdateView
from extra_views import ModelFormSetView
from markdown import markdown
@@ -59,8 +60,8 @@ from ishtar_common.utils import clean_session_cache, CSV_OPTIONS, \
get_field_labels_from_path, get_random_item_image_link, shortify
from ishtar_common.widgets import JQueryAutoComplete
-from views_item import CURRENT_ITEM_KEYS, display_item, get_item, new_item, \
- show_item
+from views_item import CURRENT_ITEM_KEYS, check_permission, display_item, \
+ get_item, new_item, show_item
logger = logging.getLogger(__name__)
@@ -1579,13 +1580,11 @@ display_document = display_item(models.Document)
document_search_wizard = wizards.SearchWizard.as_view(
[('selec-document_search', forms.DocumentFormSelection)],
label=_(u"Document: search"),
- url_name='document_search',
+ url_name='search-document',
)
-class DocumentFormView(IshtarMixin, LoginRequiredMixin,
- CreateView):
- page_name = _(u"New Document")
+class DocumentFormMixin(IshtarMixin, LoginRequiredMixin):
form_class = forms.DocumentForm
template_name = 'ishtar/forms/document.html'
model = models.Document
@@ -1594,21 +1593,47 @@ class DocumentFormView(IshtarMixin, LoginRequiredMixin,
return reverse('display-document', args=[self.object.pk])
-"""
-class DocumentSelectMixin(IshtarMixin, LoginRequiredMixin,
- FormView):
- form_class = forms.PersonMergeFormSelection
+class DocumentCreateView(DocumentFormMixin, CreateView):
+ page_name = _(u"Document creation")
+
+
+class DocumentSelectView(IshtarMixin, LoginRequiredMixin,
+ FormView):
+ form_class = forms.DocumentFormSelection
template_name = 'ishtar/form.html'
- redir_url = 'person_manual_merge_items'
+ redir_url = 'edit-document'
def form_valid(self, form):
- self.item = form.get_item()
- return super(ManualMergeMixin, self).form_valid(form)
+ self.pk = form.cleaned_data['pk']
+ return super(DocumentSelectView, self).form_valid(form)
def get_success_url(self):
- return reverse(self.redir_url, args=[self.item.pk])
+ return reverse(self.redir_url, args=[self.pk])
+class DocumentEditView(DocumentFormMixin, UpdateView):
+ page_name = _(u"Document modification")
+
+ def get_form_kwargs(self):
+ kwargs = super(DocumentEditView, self).get_form_kwargs()
+ try:
+ document = models.Document.objects.get(pk=self.kwargs.get('pk'))
+ assert check_permission(self.request, 'document/edit', document.pk)
+ except (AssertionError, models.Document.DoesNotExist):
+ raise Http404()
+ initial = {}
+ for k in self.form_class.base_fields.keys() + \
+ models.Document.RELATED_MODELS:
+ value = getattr(document, k)
+ if hasattr(value, 'all'):
+ value = ",".join([str(v.pk) for v in value.all()])
+ initial[k] = value
+
+ kwargs['initial'] = initial
+ return kwargs
+
+
+"""
class DocumentSelectView(DocumentSelectMixin, IshtarMixin, LoginRequiredMixin,
FormView):
page_name = _(u"Merge persons")