Added a document page edit view

This commit is contained in:
Roberto Rosario
2011-04-15 00:37:36 -04:00
parent bce05d7d83
commit 7d3ebcf9ca
5 changed files with 64 additions and 14 deletions

View File

@@ -16,6 +16,7 @@ from conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
PERMISSION_DOCUMENT_CREATE = 'document_create'
PERMISSION_DOCUMENT_PROPERTIES_EDIT = 'document_properties_edit'
PERMISSION_DOCUMENT_EDIT = 'document_edit'
PERMISSION_DOCUMENT_METADATA_EDIT = 'document_metadata_edit'
PERMISSION_DOCUMENT_VIEW = 'document_view'
PERMISSION_DOCUMENT_DELETE = 'document_delete'
@@ -26,6 +27,7 @@ PERMISSION_DOCUMENT_TOOLS = 'document_tools'
register_permissions('documents', [
{'name': PERMISSION_DOCUMENT_CREATE, 'label': _(u'Create document')},
{'name': PERMISSION_DOCUMENT_PROPERTIES_EDIT, 'label': _(u'Edit document properties')},
{'name': PERMISSION_DOCUMENT_EDIT, 'label': _(u'Edit document')},
{'name': PERMISSION_DOCUMENT_METADATA_EDIT, 'label': _(u'Edit document metadata')},
{'name': PERMISSION_DOCUMENT_VIEW, 'label': _(u'View document')},
{'name': PERMISSION_DOCUMENT_DELETE, 'label': _(u'Delete document')},
@@ -58,7 +60,8 @@ document_page_transformation_edit = {'text': _('edit'), 'view': 'document_page_t
document_page_transformation_delete = {'text': _('delete'), 'view': 'document_page_transformation_delete', 'args': 'object.id', 'famfam': 'pencil_delete', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]}}
document_page_transformation_go_back = {'text': _('page view'), 'view': 'document_page_view', 'args': 'object.document_page.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
document_page_go_back = {'text': _('page view'), 'view': 'document_page_view', 'args': 'object.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
document_page_go_back = {'text': _('page details'), 'view': 'document_page_view', 'args': 'object.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
document_page_edit = {'text': _('edit page'), 'view': 'document_page_edit', 'args': 'object.id', 'famfam': 'page_white', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_EDIT]}}
document_missing_list = {'text': _('Find missing document files'), 'view': 'document_missing_list', 'famfam': 'folder_page', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
@@ -74,13 +77,13 @@ if ENABLE_SINGLE_DOCUMENT_UPLOAD:
else:
register_links(['document_list', 'document_create', 'document_create_multiple', 'upload_document_with_type', 'upload_multiple_documents_with_type'], [document_list, document_create_multiple], menu_name='sidebar')
register_links(DocumentPage, [document_page_go_back], menu_name='sidebar')
register_links(DocumentPage, [document_page_edit, document_page_go_back], menu_name='sidebar')
register_links('document_page_transformation_list', [document_page_transformation_create, document_page_transformation_list], menu_name='sidebar')
register_links('document_page_transformation_create', [document_page_transformation_create], menu_name='sidebar')
register_links(DocumentPageTransformation, [document_page_transformation_edit, document_page_transformation_delete])
register_links(DocumentPageTransformation, [document_page_transformation_go_back], menu_name='sidebar')
register_links(['document_page_view', 'document_page_transformation_edit', 'document_page_transformation_delete', 'document_page_transformation_create'], [document_page_transformation_list], menu_name='sidebar')
register_links(DocumentPageTransformation, [document_page_edit, document_page_transformation_go_back], menu_name='sidebar')
register_links(['document_page_edit', 'document_page_view', 'document_page_transformation_edit', 'document_page_transformation_delete', 'document_page_transformation_create'], [document_page_transformation_list], menu_name='sidebar')
register_links(StagingFile, [staging_file_preview, staging_file_delete])

View File

@@ -30,12 +30,15 @@ class DocumentPageTransformationForm(forms.ModelForm):
class DocumentPageImageWidget(forms.widgets.Widget):
def render(self, name, value, attrs=None):
output = []
output.append('<div style="overflow: auto;"><img src="%(img)s?page=%(page)s" /></div>' % {
'img': reverse('document_display', args=[value.document.id]),
'page': value.page_number,
})
return mark_safe(u''.join(output))
if value:
output = []
output.append('<div style="overflow: auto;"><img src="%(img)s?page=%(page)s" /></div>' % {
'img': reverse('document_display', args=[value.document.id]),
'page': value.page_number,
})
return mark_safe(u''.join(output))
else:
return u''
class DocumentPageForm(DetailForm):
@@ -55,6 +58,22 @@ class DocumentPageForm(DetailForm):
page_image = forms.CharField(widget=DocumentPageImageWidget())
class DocumentPageForm_edit(forms.ModelForm):
class Meta:
model = DocumentPage
fields = ('page_label', 'content')
def __init__(self, *args, **kwargs):
super(DocumentPageForm_edit, self).__init__(*args, **kwargs)
self.fields['page_image'].initial = self.instance
self.fields.keyOrder = [
'page_image',
'page_label',
'content',
]
page_image = forms.CharField(required=False, widget=DocumentPageImageWidget())
class ImageWidget(forms.widgets.Widget):
def render(self, name, value, attrs=None):
output = []
@@ -64,7 +83,6 @@ class ImageWidget(forms.widgets.Widget):
ugettext(u'Pages'))
for page in value.documentpage_set.all():
output.append(
#'<span>%(page)s)<a rel="gallery_1" class="fancybox-iframe" href="%(url)s?page=%(page)s"><img src="%(img)s?page=%(page)s" /></a></span>' % {
'<span>%(page)s)<a rel="gallery_1" class="fancybox-iframe" href="%(url)s"><img src="%(img)s?page=%(page)s" /></a></span>' % {
'url': reverse('document_page_view', args=[page.id]),
'img': reverse('document_preview_multipage', args=[value.id]),

View File

@@ -298,6 +298,10 @@ class DocumentPage(models.Model):
verbose_name = _(u'document page')
verbose_name_plural = _(u'document pages')
@models.permalink
def get_absolute_url(self):
return ('document_page_view', [self.id])
class MetadataGroup(models.Model):
document_type = models.ManyToManyField(DocumentType, null=True, blank=True,

View File

@@ -43,6 +43,7 @@ urlpatterns = patterns('documents.views',
url(r'^staging_file/(?P<staging_file_id>\w+)/delete/$', 'staging_file_delete', (), 'staging_file_delete'),
url(r'^document/page/(?P<document_page_id>\d+)/$', 'document_page_view', (), 'document_page_view'),
url(r'^document/page/(?P<document_page_id>\d+)/edit/$', 'document_page_edit', (), 'document_page_edit'),
url(r'^document/page/(?P<document_page_id>\d+)/transformation/list/$', 'document_page_transformation_list', (), 'document_page_transformation_list'),
url(r'^document/page/(?P<document_page_id>\d+)/transformation/create/$', 'document_page_transformation_create', (), 'document_page_transformation_create'),

View File

@@ -40,13 +40,14 @@ from documents import PERMISSION_DOCUMENT_CREATE, \
PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
PERMISSION_DOCUMENT_METADATA_EDIT, PERMISSION_DOCUMENT_VIEW, \
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS, \
PERMISSION_DOCUMENT_EDIT
from forms import DocumentTypeSelectForm, DocumentCreateWizard, \
MetadataForm, DocumentForm, DocumentForm_edit, DocumentForm_view, \
StagingDocumentForm, DocumentTypeMetadataType, DocumentPreviewForm, \
MetadataFormSet, DocumentPageForm, DocumentPageTransformationForm, \
DocumentContentForm
DocumentContentForm, DocumentPageForm_edit
from metadata import save_metadata_list, \
decode_metadata_from_url, metadata_repr_as_list
@@ -906,7 +907,6 @@ def document_page_view(request, document_page_id):
{
'form': document_page_form,
'title': _(u'details for page: %s') % document_page.page_number,
'object': document_page,
},
]
return render_to_response('generic_detail.html', {
@@ -914,3 +914,27 @@ def document_page_view(request, document_page_id):
'object': document_page,
'web_theme_hide_menus': True,
}, context_instance=RequestContext(request))
def document_page_edit(request, document_page_id):
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_EDIT])
document_page = get_object_or_404(DocumentPage, pk=document_page_id)
if request.method == 'POST':
form = DocumentPageForm_edit(request.POST, instance=document_page)
if form.is_valid():
document_page.page_label = form.cleaned_data['page_label']
document_page.content = form.cleaned_data['content']
document_page.save()
messages.success(request, _(u'Document page edited successfully.'))
return HttpResponseRedirect(document_page.get_absolute_url())
else:
form = DocumentPageForm_edit(instance=document_page)
return render_to_response('generic_form.html', {
'form': form,
'object': document_page,
'title': _(u'edit page: %s') % document_page.page_number,
'web_theme_hide_menus': True,
}, context_instance=RequestContext(request))