From 6b5d082b78080c2758313994c1388c65d1823341 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 2 Oct 2014 02:25:28 -0400 Subject: [PATCH 1/7] Start addressing issue #40 (document, permissions, sources, tags and user_management apps) --- mayan/apps/documents/views.py | 40 ++++++++++++++--------------- mayan/apps/permissions/views.py | 5 ++-- mayan/apps/sources/views.py | 7 ++--- mayan/apps/tags/views.py | 19 +++++++------- mayan/apps/user_management/views.py | 19 +++++++------- 5 files changed, 47 insertions(+), 43 deletions(-) diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index 3825177f23..10a239bf8a 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -180,15 +180,15 @@ def document_delete(request, document_id=None, document_id_list=None): documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one document.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) try: Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_DELETE]) except PermissionDenied: documents = AccessEntry.objects.filter_objects_by_access(PERMISSION_DOCUMENT_DELETE, request.user, documents, exception_on_empty=True) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': for document in documents: @@ -290,7 +290,7 @@ def get_document_image(request, document_id, size=PREVIEW_SIZE): def document_download(request, document_id=None, document_id_list=None, document_version_pk=None): - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if document_id: document_versions = [get_object_or_404(Document, pk=document_id).latest_version] @@ -456,7 +456,7 @@ def document_update_page_count(request): office_converter = OfficeConverter() qs = DocumentVersion.objects.exclude(filename__iendswith='dxf').filter(mimetype__in=office_converter.mimetypes()) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': updated = 0 @@ -491,7 +491,7 @@ def document_clear_transformations(request, document_id=None, document_id_list=N post_redirect = None else: messages.error(request, _(u'Must provide at least one document.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', u'/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) try: Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TRANSFORM]) @@ -655,11 +655,11 @@ def document_page_navigation_next(request, document_page_id): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document_page.document) - view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).path) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).path) if document_page.page_number >= document_page.siblings.count(): messages.warning(request, _(u'There are no more pages in this document')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', u'/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) else: document_page = get_object_or_404(document_page.siblings, page_number=document_page.page_number + 1) return HttpResponseRedirect(reverse(view, args=[document_page.pk])) @@ -673,11 +673,11 @@ def document_page_navigation_previous(request, document_page_id): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document_page.document) - view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).path) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).path) if document_page.page_number <= 1: messages.warning(request, _(u'You are already at the first page of this document')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', u'/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) else: document_page = get_object_or_404(document_page.siblings, page_number=document_page.page_number - 1) return HttpResponseRedirect(reverse(view, args=[document_page.pk])) @@ -692,7 +692,7 @@ def document_page_navigation_first(request, document_page_id): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document_page.document) - view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).path) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).path) return HttpResponseRedirect(reverse(view, args=[document_page.pk])) @@ -706,7 +706,7 @@ def document_page_navigation_last(request, document_page_id): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document_page.document) - view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).path) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).path) return HttpResponseRedirect(reverse(view, args=[document_page.pk])) @@ -730,10 +730,10 @@ def transform_page(request, document_page_id, zoom_function=None, rotation_funct except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document_page.document) - view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).path) + view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).path) # Get the query string from the referer url - query = urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).query + query = urlparse.urlparse(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))).query # Parse the query string and get the zoom value # parse_qs return a dictionary whose values are lists zoom = int(urlparse.parse_qs(query).get('zoom', ['100'])[0]) @@ -917,8 +917,8 @@ def document_type_delete(request, document_type_id): post_action_redirect = reverse('documents:document_type_list') - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': try: @@ -1036,8 +1036,8 @@ def document_type_filename_delete(request, document_type_filename_id): post_action_redirect = reverse('documents:document_type_filename_list', args=[document_type_filename.document_type_id]) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': try: @@ -1107,7 +1107,7 @@ def document_type_filename_create(request, document_type_id): def document_clear_image_cache(request): Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_TOOLS]) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': try: @@ -1181,7 +1181,7 @@ def document_version_revert(request, document_version_pk): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VERSION_REVERT, request.user, document_version.document) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': try: diff --git a/mayan/apps/permissions/views.py b/mayan/apps/permissions/views.py index d3e626e33e..d2487598ba 100644 --- a/mayan/apps/permissions/views.py +++ b/mayan/apps/permissions/views.py @@ -8,6 +8,7 @@ from django.contrib import messages from django.contrib.auth.models import Group, User from django.contrib.contenttypes.models import ContentType from django.core.urlresolvers import reverse_lazy +from django.conf import settings from django.http import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404, render_to_response from django.template import RequestContext @@ -111,8 +112,8 @@ def permission_grant(request): items_property_list = loads(request.GET.get('items_property_list', [])) post_action_redirect = None - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) items = [] for item_properties in items_property_list: diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index 6fb03d18a0..88e6de3a8a 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -4,6 +4,7 @@ from django.conf import settings from django.contrib import messages from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse +from django.conf import settings from django.http import HttpResponseRedirect from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext @@ -376,8 +377,8 @@ def staging_file_delete(request, staging_folder_pk, encoded_filename): staging_folder = get_object_or_404(StagingFolder, pk=staging_folder_pk) staging_file = staging_folder.get_file(encoded_filename=encoded_filename) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': try: @@ -437,7 +438,7 @@ def setup_source_edit(request, source_type, source_id): form_class = WatchFolderSetupForm source = get_object_or_404(cls, pk=source_id) - next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': form = form_class(instance=source, data=request.POST) diff --git a/mayan/apps/tags/views.py b/mayan/apps/tags/views.py index fadb59216e..f76f738788 100644 --- a/mayan/apps/tags/views.py +++ b/mayan/apps/tags/views.py @@ -5,6 +5,7 @@ import logging from django.contrib import messages from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse +from django.conf import settings from django.http import HttpResponseRedirect from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext @@ -67,7 +68,7 @@ def tag_attach(request, document_id=None, document_id_list=None): documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one document.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) try: Permission.objects.check_permissions(request.user, [PERMISSION_TAG_ATTACH]) @@ -75,8 +76,8 @@ def tag_attach(request, document_id=None, document_id_list=None): documents = AccessEntry.objects.filter_objects_by_access(PERMISSION_TAG_ATTACH, request.user, documents) post_action_redirect = None - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': form = TagListForm(request.POST, user=request.user) @@ -152,15 +153,15 @@ def tag_delete(request, tag_id=None, tag_id_list=None): tags = [get_object_or_404(Tag, pk=tag_id) for tag_id in tag_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one tag.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) try: Permission.objects.check_permissions(request.user, [PERMISSION_TAG_DELETE]) except PermissionDenied: tags = AccessEntry.objects.filter_objects_by_access(PERMISSION_TAG_DELETE, request.user, tags) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': for tag in tags: @@ -272,7 +273,7 @@ def tag_remove(request, document_id=None, document_id_list=None, tag_id=None, ta documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one tagged document.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) try: Permission.objects.check_permissions(request.user, [PERMISSION_TAG_REMOVE]) @@ -281,8 +282,8 @@ def tag_remove(request, document_id=None, document_id_list=None, tag_id=None, ta post_action_redirect = None - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) context = { 'previous': previous, diff --git a/mayan/apps/user_management/views.py b/mayan/apps/user_management/views.py index 6709f2794c..e10ce189fe 100644 --- a/mayan/apps/user_management/views.py +++ b/mayan/apps/user_management/views.py @@ -4,6 +4,7 @@ from django.contrib import messages from django.contrib.auth import get_user_model from django.contrib.auth.models import User, Group from django.core.urlresolvers import reverse +from django.conf import settings from django.http import HttpResponseRedirect from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext @@ -58,7 +59,7 @@ def user_edit(request, user_id): if user.is_superuser or user.is_staff: messages.error(request, _(u'Super user and staff user editing is not allowed, use the admin interface for these cases.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) if request.method == 'POST': form = UserForm(instance=user, data=request.POST) @@ -108,10 +109,10 @@ def user_delete(request, user_id=None, user_id_list=None): users = [get_object_or_404(User, pk=user_id) for user_id in user_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one user.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': for user in users: @@ -162,9 +163,9 @@ def user_set_password(request, user_id=None, user_id_list=None): users = [get_object_or_404(User, pk=user_id) for user_id in user_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one user.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': form = PasswordForm(request.POST) @@ -315,10 +316,10 @@ def group_delete(request, group_id=None, group_id_list=None): groups = [get_object_or_404(Group, pk=group_id) for group_id in group_id_list.split(',')] else: messages.error(request, _(u'Must provide at least one group.')) - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) + next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) if request.method == 'POST': for group in groups: From 9920f75b5817a4a62e1d00db04a1d614788ddb8c Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 2 Oct 2014 17:33:30 -0400 Subject: [PATCH 2/7] Issue #56, Remove per source icon support --- mayan/apps/sources/forms.py | 14 --- mayan/apps/sources/literals.py | 24 ----- ...gingfolder_icon__del_field_webform_icon.py | 91 +++++++++++++++++++ mayan/apps/sources/models.py | 17 +--- mayan/apps/sources/views.py | 1 - 5 files changed, 95 insertions(+), 52 deletions(-) create mode 100644 mayan/apps/sources/migrations/0003_auto__del_field_stagingfolder_icon__del_field_webform_icon.py diff --git a/mayan/apps/sources/forms.py b/mayan/apps/sources/forms.py index f28a7f7984..83cb9f9ce9 100644 --- a/mayan/apps/sources/forms.py +++ b/mayan/apps/sources/forms.py @@ -76,25 +76,11 @@ class WebFormForm(DocumentForm): class WebFormSetupForm(forms.ModelForm): - def __init__(self, *args, **kwargs): - super(WebFormSetupForm, self).__init__(*args, **kwargs) - self.fields['icon'].widget = FamFamRadioSelect( - attrs=self.fields['icon'].widget.attrs, - choices=self.fields['icon'].widget.choices, - ) - class Meta: model = WebForm class StagingFolderSetupForm(forms.ModelForm): - def __init__(self, *args, **kwargs): - super(StagingFolderSetupForm, self).__init__(*args, **kwargs) - self.fields['icon'].widget = FamFamRadioSelect( - attrs=self.fields['icon'].widget.attrs, - choices=self.fields['icon'].widget.choices, - ) - class Meta: model = StagingFolder diff --git a/mayan/apps/sources/literals.py b/mayan/apps/sources/literals.py index bed00d02fd..260c9160e4 100644 --- a/mayan/apps/sources/literals.py +++ b/mayan/apps/sources/literals.py @@ -15,30 +15,6 @@ SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES = ( (SOURCE_UNCOMPRESS_CHOICE_ASK, _(u'Ask user')) ) -SOURCE_ICON_DISK = 'disk' -SOURCE_ICON_DATABASE = 'database' -SOURCE_ICON_DRIVE = 'drive' -SOURCE_ICON_DRIVE_NETWORK = 'drive_network' -SOURCE_ICON_DRIVE_USER = 'drive_user' -SOURCE_ICON_EMAIL = 'email' -SOURCE_ICON_FOLDER = 'folder' -SOURCE_ICON_WORLD = 'world' -SOURCE_ICON_PRINTER = 'printer' -SOURCE_ICON_PRINTER_EMPTY = 'printer_empty' - -SOURCE_ICON_CHOICES = ( - (SOURCE_ICON_DISK, _(u'Disk')), - (SOURCE_ICON_DATABASE, _(u'Database')), - (SOURCE_ICON_DRIVE, _(u'Drive')), - (SOURCE_ICON_DRIVE_NETWORK, _(u'Network drive')), - (SOURCE_ICON_DRIVE_USER, _(u'User drive')), - (SOURCE_ICON_EMAIL, _(u'Envelope')), - (SOURCE_ICON_FOLDER, _(u'Folder')), - (SOURCE_ICON_WORLD, _(u'World')), - (SOURCE_ICON_PRINTER, _(u'Printer')), - (SOURCE_ICON_PRINTER_EMPTY, _(u'Empty printer')), -) - SOURCE_CHOICE_WEB_FORM = 'webform' SOURCE_CHOICE_STAGING = 'staging' SOURCE_CHOICE_WATCH = 'watch' diff --git a/mayan/apps/sources/migrations/0003_auto__del_field_stagingfolder_icon__del_field_webform_icon.py b/mayan/apps/sources/migrations/0003_auto__del_field_stagingfolder_icon__del_field_webform_icon.py new file mode 100644 index 0000000000..64a48c8059 --- /dev/null +++ b/mayan/apps/sources/migrations/0003_auto__del_field_stagingfolder_icon__del_field_webform_icon.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting field 'StagingFolder.icon' + db.delete_column(u'sources_stagingfolder', 'icon') + + # Deleting field 'WebForm.icon' + db.delete_column(u'sources_webform', 'icon') + + + def backwards(self, orm): + # Adding field 'StagingFolder.icon' + db.add_column(u'sources_stagingfolder', 'icon', + self.gf('django.db.models.fields.CharField')(max_length=24, null=True, blank=True), + keep_default=False) + + # Adding field 'WebForm.icon' + db.add_column(u'sources_webform', 'icon', + self.gf('django.db.models.fields.CharField')(max_length=24, null=True, blank=True), + keep_default=False) + + + models = { + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + u'sources.outofprocess': { + 'Meta': {'ordering': "('title',)", 'object_name': 'OutOfProcess'}, + 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'whitelist': ('django.db.models.fields.TextField', [], {'blank': 'True'}) + }, + u'sources.sourcetransformation': { + 'Meta': {'ordering': "('order',)", 'object_name': 'SourceTransformation'}, + 'arguments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), + 'transformation': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + u'sources.stagingfolder': { + 'Meta': {'ordering': "('title',)", 'object_name': 'StagingFolder'}, + 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'delete_after_upload': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'folder_path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'preview_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'preview_width': ('django.db.models.fields.IntegerField', [], {}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'uncompress': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'whitelist': ('django.db.models.fields.TextField', [], {'blank': 'True'}) + }, + u'sources.watchfolder': { + 'Meta': {'ordering': "('title',)", 'object_name': 'WatchFolder'}, + 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'delete_after_upload': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'folder_path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'interval': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'uncompress': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'whitelist': ('django.db.models.fields.TextField', [], {'blank': 'True'}) + }, + u'sources.webform': { + 'Meta': {'ordering': "('title',)", 'object_name': 'WebForm'}, + 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'uncompress': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'whitelist': ('django.db.models.fields.TextField', [], {'blank': 'True'}) + } + } + + complete_apps = ['sources'] \ No newline at end of file diff --git a/mayan/apps/sources/models.py b/mayan/apps/sources/models.py index 428249fef3..3033ced6d9 100644 --- a/mayan/apps/sources/models.py +++ b/mayan/apps/sources/models.py @@ -23,10 +23,10 @@ from scheduler.api import register_interval_job, remove_job from .classes import StagingFile from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL, - SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, SOURCE_CHOICE_WEB_FORM, - SOURCE_CHOICE_STAGING, SOURCE_ICON_DISK, SOURCE_ICON_DRIVE, - SOURCE_ICON_CHOICES, SOURCE_CHOICE_WATCH, SOURCE_UNCOMPRESS_CHOICES, - SOURCE_UNCOMPRESS_CHOICE_Y) + SOURCE_CHOICE_STAGING, SOURCE_CHOICE_WATCH, + SOURCE_CHOICE_WEB_FORM, + SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, + SOURCE_UNCOMPRESS_CHOICES, SOURCE_UNCOMPRESS_CHOICE_Y) from .managers import SourceTransformationManager logger = logging.getLogger(__name__) @@ -141,13 +141,6 @@ class BaseModel(models.Model): class InteractiveBaseModel(BaseModel): - icon = models.CharField(blank=True, null=True, max_length=24, choices=SOURCE_ICON_CHOICES, verbose_name=_(u'Icon'), help_text=_(u'An icon to visually distinguish this source.')) - - def save(self, *args, **kwargs): - if not self.icon: - self.icon = self.default_icon - super(BaseModel, self).save(*args, **kwargs) - class Meta(BaseModel.Meta): abstract = True @@ -155,7 +148,6 @@ class InteractiveBaseModel(BaseModel): class StagingFolder(InteractiveBaseModel): is_interactive = True source_type = SOURCE_CHOICE_STAGING - default_icon = SOURCE_ICON_DRIVE folder_path = models.CharField(max_length=255, verbose_name=_(u'Folder path'), help_text=_(u'Server side filesystem path.')) preview_width = models.IntegerField(verbose_name=_(u'Preview width'), help_text=_(u'Width value to be passed to the converter backend.')) @@ -189,7 +181,6 @@ class StagingFolder(InteractiveBaseModel): class WebForm(InteractiveBaseModel): is_interactive = True source_type = SOURCE_CHOICE_WEB_FORM - default_icon = SOURCE_ICON_DISK uncompress = models.CharField(max_length=1, choices=SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES, verbose_name=_(u'Uncompress'), help_text=_(u'Whether to expand or not compressed archives.')) # Default path diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index 88e6de3a8a..e010916d45 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -67,7 +67,6 @@ def get_tab_link_for_source(source, document=None): 'text': source.title, 'view': view, 'args': args, - 'famfam': source.icon, 'keep_query': True, 'conditional_highlight': return_function(source), } From 1cd0e05f1f6c8569bdcf5408af18dc47a704ffce Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 2 Oct 2014 17:37:40 -0400 Subject: [PATCH 3/7] Issue #56, Remove the MAIN_VERBOSE_LOGIN configuration option --- docs/topics/customization.rst | 10 ---------- docs/topics/settings.rst | 9 --------- mayan/apps/main/settings.py | 1 - mayan/apps/main/templates/main/login.html | 4 ---- mayan/apps/main/templates/main/verbose_login.html | 10 ---------- 5 files changed, 34 deletions(-) delete mode 100644 mayan/apps/main/templates/main/verbose_login.html diff --git a/docs/topics/customization.rst b/docs/topics/customization.rst index 9598ccdd3a..f9754dff31 100644 --- a/docs/topics/customization.rst +++ b/docs/topics/customization.rst @@ -18,16 +18,6 @@ configuration option to one of its valid values. .. image:: ../_static/themes.png :alt: themes ------------- -Login screen ------------- -The amount of information presented at the login screen can also be restricted -for security or design reasons using :setting:`WEB_THEME_VERBOSE_LOGIN` -configuration option. - -.. image:: ../_static/mayan-login.png - :alt: mayan login screen - ----------- Home screen ----------- diff --git a/docs/topics/settings.rst b/docs/topics/settings.rst index 8238d22e46..9f6e1d02c2 100644 --- a/docs/topics/settings.rst +++ b/docs/topics/settings.rst @@ -473,15 +473,6 @@ CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, ``orange``, ``red``, ``reidb-greenish`` and ``warehouse``. -.. setting:: WEB_THEME_VERBOSE_LOGIN - -**WEB_THEME_VERBOSE_LOGIN** - -Default: ``True`` - -Display extra information in the login screen. - - Main ==== diff --git a/mayan/apps/main/settings.py b/mayan/apps/main/settings.py index e331ccd717..ea1b3c302d 100644 --- a/mayan/apps/main/settings.py +++ b/mayan/apps/main/settings.py @@ -25,6 +25,5 @@ register_settings( settings=[ {'name': u'THEME', 'global_name': u'MAIN_THEME', 'default': u'activo', 'description': _(u'CSS theme to apply, options are: amro, bec, bec-green, blue, default, djime-cerulean, drastic-dark, kathleene, olive, orange, red, reidb-greenish and warehouse.')}, {'name': u'ENABLE_SCROLL_JS', 'global_name': u'MAIN_ENABLE_SCROLL_JS', 'default': True, 'hidden': True}, - {'name': u'VERBOSE_LOGIN', 'global_name': u'MAIN_VERBOSE_LOGIN', 'default': True, 'description': _(u'Display extra information in the login screen.')}, ] ) diff --git a/mayan/apps/main/templates/main/login.html b/mayan/apps/main/templates/main/login.html index a435a6b61f..2eb695e715 100644 --- a/mayan/apps/main/templates/main/login.html +++ b/mayan/apps/main/templates/main/login.html @@ -66,10 +66,6 @@ - {% get_web_theme_setting "VERBOSE_LOGIN" as verbose_login %} - {% if verbose_login %} - {% include 'main/verbose_login.html' %} - {% endif %} {% endblock %} {% endif %} diff --git a/mayan/apps/main/templates/main/verbose_login.html b/mayan/apps/main/templates/main/verbose_login.html deleted file mode 100644 index 587f080ac8..0000000000 --- a/mayan/apps/main/templates/main/verbose_login.html +++ /dev/null @@ -1,10 +0,0 @@ -{% load i18n %} - -{% load version_tags %} - -

{% trans 'Version' %} {% app_version 'mayan' %}

- -

{% trans 'Copyright © 2011 Roberto Rosario.' %}

- -{% include 'main/project_description.html' %} - From 6e40e7e5a55ede0eb269592213612306d765f943 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 2 Oct 2014 17:42:44 -0400 Subject: [PATCH 4/7] Issue #56, Remove the MAIN_THEME configuration option --- docs/topics/customization.rst | 16 ---------------- docs/topics/settings.rst | 14 -------------- mayan/apps/main/settings.py | 1 - mayan/apps/main/templates/main/base.html | 2 +- 4 files changed, 1 insertion(+), 32 deletions(-) diff --git a/docs/topics/customization.rst b/docs/topics/customization.rst index f9754dff31..e792d28f91 100644 --- a/docs/topics/customization.rst +++ b/docs/topics/customization.rst @@ -2,22 +2,6 @@ Customization ============= -The general appearance of **Mayan EDMS** can be customized entirely just -by changing a few settings. - ------- -Themes ------- -**Mayan EDMS** uses `Andrea Franz's excellent web app template`_, which includes -several themes that could be used to adapt **Mayan EDMS**'s appearance to match -an organtization existing applications' look and feel. - -The theme can be changed very easily by setting the :setting:`WEB_THEME_THEME` -configuration option to one of its valid values. - -.. image:: ../_static/themes.png - :alt: themes - ----------- Home screen ----------- diff --git a/docs/topics/settings.rst b/docs/topics/settings.rst index 9f6e1d02c2..45ff041cdd 100644 --- a/docs/topics/settings.rst +++ b/docs/topics/settings.rst @@ -459,20 +459,6 @@ Default: ``5`` Maximum number of search queries to remember per user. -Web theme -========= - -.. setting:: WEB_THEME_THEME - -**WEB_THEME_THEME** - -Default: ``activo`` - -CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, -``default``, ``djime-cerulean``, ``drastic-dark``, ``kathleene``, ``olive``, -``orange``, ``red``, ``reidb-greenish`` and ``warehouse``. - - Main ==== diff --git a/mayan/apps/main/settings.py b/mayan/apps/main/settings.py index ea1b3c302d..fc2b3ad66b 100644 --- a/mayan/apps/main/settings.py +++ b/mayan/apps/main/settings.py @@ -23,7 +23,6 @@ register_settings( namespace=u'main', module=u'main.settings', settings=[ - {'name': u'THEME', 'global_name': u'MAIN_THEME', 'default': u'activo', 'description': _(u'CSS theme to apply, options are: amro, bec, bec-green, blue, default, djime-cerulean, drastic-dark, kathleene, olive, orange, red, reidb-greenish and warehouse.')}, {'name': u'ENABLE_SCROLL_JS', 'global_name': u'MAIN_ENABLE_SCROLL_JS', 'default': True, 'hidden': True}, ] ) diff --git a/mayan/apps/main/templates/main/base.html b/mayan/apps/main/templates/main/base.html index fe3ff69760..2c933ad34a 100644 --- a/mayan/apps/main/templates/main/base.html +++ b/mayan/apps/main/templates/main/base.html @@ -36,7 +36,7 @@ {% compress css %} - +