Cleaned up files, removed ununsed imports
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.safestring import mark_safe
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
@@ -77,7 +76,7 @@ class FilterForm(forms.Form):
|
|||||||
self.fields[list_filter['name']] = forms.ModelChoiceField(
|
self.fields[list_filter['name']] = forms.ModelChoiceField(
|
||||||
queryset=list_filter['queryset'],
|
queryset=list_filter['queryset'],
|
||||||
label=label[0].upper() + label[1:], required=False)
|
label=label[0].upper() + label[1:], required=False)
|
||||||
|
|
||||||
|
|
||||||
class ChoiceForm(forms.Form):
|
class ChoiceForm(forms.Form):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ def parse_range(astr):
|
|||||||
x = part.split(u'-')
|
x = part.split(u'-')
|
||||||
result.update(range(int(x[0]), int(x[-1]) + 1))
|
result.update(range(int(x[0]), int(x[-1]) + 1))
|
||||||
return sorted(result)
|
return sorted(result)
|
||||||
|
|
||||||
|
|
||||||
def generate_choices_w_labels(choices, display_object_type=True):
|
def generate_choices_w_labels(choices, display_object_type=True):
|
||||||
results = []
|
results = []
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.contrib import messages
|
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
|
||||||
from common.utils import generate_choices_w_labels
|
|
||||||
from common.forms import ChoiceForm
|
from common.forms import ChoiceForm
|
||||||
|
|
||||||
|
|
||||||
@@ -44,12 +42,12 @@ def get_obj_from_content_type_string(string):
|
|||||||
model, pk = string.split(u',')
|
model, pk = string.split(u',')
|
||||||
ct = ContentType.objects.get(model=model)
|
ct = ContentType.objects.get(model=model)
|
||||||
return ct.get_object_for_this_type(pk=pk)
|
return ct.get_object_for_this_type(pk=pk)
|
||||||
|
|
||||||
|
|
||||||
def assign_remove(request, left_list, right_list, add_method, remove_method, left_list_title, right_list_title, obj=None, object_name=None, decode_content_type=False):
|
def assign_remove(request, left_list, right_list, add_method, remove_method, left_list_title, right_list_title, obj=None, object_name=None, decode_content_type=False):
|
||||||
left_list_name = u'left_list'
|
left_list_name = u'left_list'
|
||||||
right_list_name = u'right_list'
|
right_list_name = u'right_list'
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
if u'%s-submit' % left_list_name in request.POST.keys():
|
if u'%s-submit' % left_list_name in request.POST.keys():
|
||||||
unselected_list = ChoiceForm(request.POST,
|
unselected_list = ChoiceForm(request.POST,
|
||||||
@@ -101,7 +99,7 @@ def assign_remove(request, left_list, right_list, add_method, remove_method, lef
|
|||||||
'title': left_list_title,
|
'title': left_list_title,
|
||||||
'submit_label': _(u'Add'),
|
'submit_label': _(u'Add'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name':'generic_form_subtemplate.html',
|
'name':'generic_form_subtemplate.html',
|
||||||
'grid': 6,
|
'grid': 6,
|
||||||
@@ -121,13 +119,13 @@ def assign_remove(request, left_list, right_list, add_method, remove_method, lef
|
|||||||
'object': obj
|
'object': obj
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
if object_name:
|
if object_name:
|
||||||
context.update(
|
context.update(
|
||||||
{
|
{
|
||||||
'object_name': object_name,
|
'object_name': object_name,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return render_to_response('generic_form.html', context,
|
return render_to_response('generic_form.html', context,
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|||||||
@@ -298,13 +298,13 @@ class DocumentCreateWizard(BoundFormWizard):
|
|||||||
self.initial = {2: initial_data}
|
self.initial = {2: initial_data}
|
||||||
if not initial_data:
|
if not initial_data:
|
||||||
# If there is no metadata selected end wizard
|
# If there is no metadata selected end wizard
|
||||||
self.form_list=[DocumentTypeSelectForm, MetadataSelectionForm]
|
self.form_list = [DocumentTypeSelectForm, MetadataSelectionForm]
|
||||||
|
|
||||||
if isinstance(form, MetadataFormSet):
|
if isinstance(form, MetadataFormSet):
|
||||||
for identifier, metadata in enumerate(form.cleaned_data):
|
for identifier, metadata in enumerate(form.cleaned_data):
|
||||||
self.query_dict['metadata%s_id' % identifier] = metadata['id']
|
self.query_dict['metadata%s_id' % identifier] = metadata['id']
|
||||||
self.query_dict['metadata%s_value' % identifier] = metadata['value']
|
self.query_dict['metadata%s_value' % identifier] = metadata['value']
|
||||||
|
|
||||||
def get_template(self, step):
|
def get_template(self, step):
|
||||||
return 'generic_wizard.html'
|
return 'generic_wizard.html'
|
||||||
|
|
||||||
@@ -313,10 +313,10 @@ class DocumentCreateWizard(BoundFormWizard):
|
|||||||
view = 'upload_document_multiple'
|
view = 'upload_document_multiple'
|
||||||
else:
|
else:
|
||||||
view = 'upload_document'
|
view = 'upload_document'
|
||||||
|
|
||||||
if self.document_type:
|
if self.document_type:
|
||||||
self.query_dict['document_type_id'] = self.document_type.pk
|
self.query_dict['document_type_id'] = self.document_type.pk
|
||||||
|
|
||||||
url = urlquote(reverse(view), self.query_dict)
|
url = urlquote(reverse(view), self.query_dict)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ def get_statistics():
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
#[(day_count['date_added'].strftime('%Y-%m-%d'), day_count['id__count']) for day_count in Document.objects.values('date_added').annotate(Count("id"))]
|
#[(day_count['date_added'].strftime('%Y-%m-%d'), day_count['id__count']) for day_count in Document.objects.values('date_added').annotate(Count("id"))]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'title': _(u'Document statistics'),
|
'title': _(u'Document statistics'),
|
||||||
'paragraphs': paragraphs
|
'paragraphs': paragraphs
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ def document_create_sibling(request, document_id, multiple=True):
|
|||||||
|
|
||||||
if document.document_type_id:
|
if document.document_type_id:
|
||||||
query_dict['document_type_id'] = document.document_type_id
|
query_dict['document_type_id'] = document.document_type_id
|
||||||
|
|
||||||
url = reverse(view)
|
url = reverse(view)
|
||||||
return HttpResponseRedirect('%s?%s' % (url, urlencode(query_dict)))
|
return HttpResponseRedirect('%s?%s' % (url, urlencode(query_dict)))
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ def _handle_save_document(request, document, form=None):
|
|||||||
warnings = update_indexes(document)
|
warnings = update_indexes(document)
|
||||||
if request.user.is_staff or request.user.is_superuser:
|
if request.user.is_staff or request.user.is_superuser:
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
messages.warning(request, warning)
|
messages.warning(request, warning)
|
||||||
|
|
||||||
|
|
||||||
def _handle_zip_file(request, uploaded_file, document_type):
|
def _handle_zip_file(request, uploaded_file, document_type):
|
||||||
@@ -150,13 +150,13 @@ def _handle_zip_file(request, uploaded_file, document_type):
|
|||||||
|
|
||||||
def upload_document_with_type(request, multiple=True):
|
def upload_document_with_type(request, multiple=True):
|
||||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_CREATE])
|
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_CREATE])
|
||||||
|
|
||||||
document_type_id = request.GET.get('document_type_id', None)
|
document_type_id = request.GET.get('document_type_id', None)
|
||||||
if document_type_id:
|
if document_type_id:
|
||||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
||||||
else:
|
else:
|
||||||
document_type = None
|
document_type = None
|
||||||
|
|
||||||
local_form = DocumentForm(prefix='local', initial={'document_type': document_type})
|
local_form = DocumentForm(prefix='local', initial={'document_type': document_type})
|
||||||
if USE_STAGING_DIRECTORY:
|
if USE_STAGING_DIRECTORY:
|
||||||
staging_form = StagingDocumentForm(prefix='staging',
|
staging_form = StagingDocumentForm(prefix='staging',
|
||||||
@@ -240,10 +240,10 @@ def upload_document_with_type(request, multiple=True):
|
|||||||
'hide_link': True,
|
'hide_link': True,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
subtemplates_list.append(local_upload_form)
|
subtemplates_list.append(local_upload_form)
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'document_type_id': document_type_id,
|
'document_type_id': document_type_id,
|
||||||
'subtemplates_list': subtemplates_list,
|
'subtemplates_list': subtemplates_list,
|
||||||
@@ -280,7 +280,7 @@ def document_view_simple(request, document_id):
|
|||||||
'form': preview_form,
|
'form': preview_form,
|
||||||
'object': document,
|
'object': document,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
subtemplates_list.append(
|
subtemplates_list.append(
|
||||||
{
|
{
|
||||||
@@ -851,7 +851,7 @@ def document_page_view(request, document_page_id):
|
|||||||
'object': document_page,
|
'object': document_page,
|
||||||
'web_theme_hide_menus': True,
|
'web_theme_hide_menus': True,
|
||||||
'form': document_page_form,
|
'form': document_page_form,
|
||||||
'title': _(u'details for: %s') % document_page,
|
'title': _(u'details for: %s') % document_page,
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,11 @@
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
#from django.core.urlresolvers import reverse
|
|
||||||
#from django.conf import settings
|
|
||||||
|
|
||||||
from navigation.api import register_links, register_menu, \
|
from navigation.api import register_links
|
||||||
register_model_list_columns, register_multi_item_links
|
|
||||||
from main.api import register_diagnostic, register_tool
|
|
||||||
from permissions.api import register_permissions
|
|
||||||
from tags.widgets import get_tags_inline_widget_simple
|
|
||||||
|
|
||||||
#from documents.models import Document, DocumentPage, DocumentPageTransformation
|
|
||||||
#from documents.staging import StagingFile
|
|
||||||
#from documents.conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
|
||||||
from documents.literals import PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_VIEW
|
from documents.literals import PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_VIEW
|
||||||
#from documents import document_multiple_clear_transformations
|
|
||||||
|
|
||||||
document_group_link = {'text': _(u'group actions'), 'view': 'document_group_view', 'famfam': 'page_go', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
|
document_group_link = {'text': _(u'group actions'), 'view': 'document_group_view', 'famfam': 'page_go', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
|
||||||
document_group_back_to_document = {'text': _(u'return to document'), 'view': 'document_view_simple', 'args': 'ref_object.id', 'famfam': 'page', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
|
document_group_back_to_document = {'text': _(u'return to document'), 'view': 'document_view_simple', 'args': 'ref_object.id', 'famfam': 'page', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_VIEW]}}
|
||||||
document_group_create_sibling = {'text': _(u'upload new document using same metadata'), 'view': 'document_create_sibling', 'args': 'ref_object.id', 'famfam': 'page_copy', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_CREATE]}}
|
document_group_create_sibling = {'text': _(u'upload new document using same metadata'), 'view': 'document_create_sibling', 'args': 'ref_object.id', 'famfam': 'page_copy', 'permissions': {'namespace': 'documents', 'permissions': [PERMISSION_DOCUMENT_CREATE]}}
|
||||||
|
|
||||||
#register_multi_item_links(['document_group_view'], [document_multiple_clear_transformations, document_multiple_delete])
|
|
||||||
|
|
||||||
register_links(['document_group_view'], [document_group_back_to_document, document_group_create_sibling], menu_name='sidebar')
|
register_links(['document_group_view'], [document_group_back_to_document, document_group_create_sibling], menu_name='sidebar')
|
||||||
|
|||||||
@@ -1,27 +1,12 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
from django.http import HttpResponseRedirect
|
|
||||||
from django.utils.http import urlencode
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.forms.formsets import formset_factory
|
|
||||||
from django.template.defaultfilters import capfirst
|
from django.template.defaultfilters import capfirst
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from tags.widgets import get_tags_inline_widget
|
from tags.widgets import get_tags_inline_widget
|
||||||
#from common.wizard import BoundFormWizard
|
|
||||||
#from common.forms import DetailForm
|
|
||||||
#from common.literals import PAGE_SIZE_CHOICES, PAGE_ORIENTATION_CHOICES
|
|
||||||
#from common.conf.settings import DEFAULT_PAPER_SIZE
|
|
||||||
#from common.conf.settings import DEFAULT_PAGE_ORIENTATION
|
|
||||||
#from common.utils import urlquote
|
|
||||||
#from metadata.models import MetadataSet, MetadataType
|
|
||||||
#from metadata.forms import MetadataFormSet
|
|
||||||
|
|
||||||
#from documents.staging import StagingFile
|
|
||||||
#from documents.models import Document, DocumentType, \
|
|
||||||
# DocumentPage, DocumentPageTransformation
|
|
||||||
|
|
||||||
|
|
||||||
class DocumentGroupImageWidget(forms.widgets.Widget):
|
class DocumentGroupImageWidget(forms.widgets.Widget):
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from django.db import models
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
from metadata.classes import MetadataObject
|
from metadata.classes import MetadataObject
|
||||||
from metadata.models import DocumentMetadata
|
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
|
|
||||||
from grouping.literals import INCLUSION_AND, INCLUSION_OR
|
from grouping.literals import INCLUSION_AND, INCLUSION_OR
|
||||||
@@ -18,7 +17,7 @@ class DocumentGroupManager(models.Manager):
|
|||||||
eval_dict = {}
|
eval_dict = {}
|
||||||
eval_dict['document'] = document
|
eval_dict['document'] = document
|
||||||
eval_dict['metadata'] = MetadataObject(metadata_dict)
|
eval_dict['metadata'] = MetadataObject(metadata_dict)
|
||||||
|
|
||||||
if group_obj:
|
if group_obj:
|
||||||
groups_qs = self.model.objects.filter(Q(enabled=True) & Q(pk=group_obj.pk))
|
groups_qs = self.model.objects.filter(Q(enabled=True) & Q(pk=group_obj.pk))
|
||||||
else:
|
else:
|
||||||
@@ -39,7 +38,7 @@ class DocumentGroupManager(models.Manager):
|
|||||||
total_query &= query
|
total_query &= query
|
||||||
elif item.inclusion == INCLUSION_OR:
|
elif item.inclusion == INCLUSION_OR:
|
||||||
total_query |= query
|
total_query |= query
|
||||||
|
|
||||||
elif cls == u'document':
|
elif cls == u'document':
|
||||||
value_query = Q(**{
|
value_query = Q(**{
|
||||||
'%s__%s' % (attribute, item.operator): eval(item.expression, eval_dict)
|
'%s__%s' % (attribute, item.operator): eval(item.expression, eval_dict)
|
||||||
@@ -51,8 +50,8 @@ class DocumentGroupManager(models.Manager):
|
|||||||
if item.inclusion == INCLUSION_AND:
|
if item.inclusion == INCLUSION_AND:
|
||||||
total_query &= query
|
total_query &= query
|
||||||
elif item.inclusion == INCLUSION_OR:
|
elif item.inclusion == INCLUSION_OR:
|
||||||
total_query |= query
|
total_query |= query
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
errors.append(e)
|
errors.append(e)
|
||||||
value_query = Q()
|
value_query = Q()
|
||||||
@@ -66,7 +65,7 @@ class DocumentGroupManager(models.Manager):
|
|||||||
errors.append(e)
|
errors.append(e)
|
||||||
else:
|
else:
|
||||||
document_groups[group] = {'documents': []}
|
document_groups[group] = {'documents': []}
|
||||||
|
|
||||||
if group.dynamic_title:
|
if group.dynamic_title:
|
||||||
try:
|
try:
|
||||||
document_groups[group]['title'] = eval(group.dynamic_title, eval_dict)
|
document_groups[group]['title'] = eval(group.dynamic_title, eval_dict)
|
||||||
@@ -74,7 +73,7 @@ class DocumentGroupManager(models.Manager):
|
|||||||
document_groups[group]['title'] = 'Error; %s' % e
|
document_groups[group]['title'] = 'Error; %s' % e
|
||||||
else:
|
else:
|
||||||
document_groups[group]['title'] = group.title
|
document_groups[group]['title'] = group.title
|
||||||
|
|
||||||
if group_obj:
|
if group_obj:
|
||||||
# Return a single group if documents even if there were
|
# Return a single group if documents even if there were
|
||||||
# many matches
|
# many matches
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from documents.models import Document
|
|
||||||
|
|
||||||
from grouping.managers import DocumentGroupManager
|
from grouping.managers import DocumentGroupManager
|
||||||
from grouping.literals import OPERATOR_CHOICES, INCLUSION_AND, \
|
from grouping.literals import OPERATOR_CHOICES, INCLUSION_AND, \
|
||||||
INCLUSION_CHOICES
|
INCLUSION_CHOICES
|
||||||
@@ -28,7 +26,7 @@ class DocumentGroupItem(models.Model):
|
|||||||
inclusion = models.CharField(default=INCLUSION_AND, max_length=16, choices=INCLUSION_CHOICES, help_text=_(u'The inclusion is ignored for the first item.'))
|
inclusion = models.CharField(default=INCLUSION_AND, max_length=16, choices=INCLUSION_CHOICES, help_text=_(u'The inclusion is ignored for the first item.'))
|
||||||
foreign_document_data = models.CharField(max_length=32, verbose_name=_(u'foreign document data'), help_text=_(u'This represents the metadata of all other documents. Available objects: `document.<attribute>` and `metadata.<metadata_type_name>`.'))
|
foreign_document_data = models.CharField(max_length=32, verbose_name=_(u'foreign document data'), help_text=_(u'This represents the metadata of all other documents. Available objects: `document.<attribute>` and `metadata.<metadata_type_name>`.'))
|
||||||
operator = models.CharField(max_length=16, choices=OPERATOR_CHOICES)
|
operator = models.CharField(max_length=16, choices=OPERATOR_CHOICES)
|
||||||
|
|
||||||
#local_document_data = models.ForeignKey(MetadataType, related_name='metadata_type_local', verbose_name=_(u'local metadata'), help_text=_(u'This represents the metadata of the current document.'))
|
#local_document_data = models.ForeignKey(MetadataType, related_name='metadata_type_local', verbose_name=_(u'local metadata'), help_text=_(u'This represents the metadata of the current document.'))
|
||||||
expression = models.TextField(verbose_name=_(u'expression'), help_text=_(u'This expression will be evaluated against the current selected document. The document metadata is available as variables `metadata` and document properties under the variable `document`.'))
|
expression = models.TextField(verbose_name=_(u'expression'), help_text=_(u'This expression will be evaluated against the current selected document. The document metadata is available as variables `metadata` and document properties under the variable `document`.'))
|
||||||
negated = models.BooleanField(default=False, verbose_name=_(u'negated'), help_text=_(u'Inverts the logic of the operator.'))
|
negated = models.BooleanField(default=False, verbose_name=_(u'negated'), help_text=_(u'Inverts the logic of the operator.'))
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ from django.template import RequestContext
|
|||||||
|
|
||||||
from documents.literals import PERMISSION_DOCUMENT_VIEW
|
from documents.literals import PERMISSION_DOCUMENT_VIEW
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from documents.views import document_list
|
|
||||||
from permissions.api import check_permissions
|
from permissions.api import check_permissions
|
||||||
|
|
||||||
from grouping.models import DocumentGroup
|
from grouping.models import DocumentGroup
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from navigation.api import register_links, register_menu, \
|
from navigation.api import register_links, register_multi_item_links
|
||||||
register_model_list_columns, register_multi_item_links
|
|
||||||
from main.api import register_diagnostic, register_tool
|
|
||||||
from permissions.api import register_permissions
|
from permissions.api import register_permissions
|
||||||
|
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
|
|
||||||
PERMISSION_METADATA_DOCUMENT_EDIT = u'metadata_document_edit'
|
PERMISSION_METADATA_DOCUMENT_EDIT = u'metadata_document_edit'
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
from urllib import unquote_plus
|
from urllib import unquote_plus
|
||||||
|
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
from metadata.models import DocumentMetadata, MetadataType
|
from metadata.models import DocumentMetadata, MetadataType
|
||||||
|
|
||||||
@@ -39,21 +38,6 @@ def save_metadata_list(metadata_list, document, create=False):
|
|||||||
for item in metadata_list:
|
for item in metadata_list:
|
||||||
save_metadata(item, document, create)
|
save_metadata(item, document, create)
|
||||||
|
|
||||||
#if item['value']:
|
|
||||||
# save_metadata(item, document)
|
|
||||||
#else:
|
|
||||||
# #If there is no metadata value, delete the metadata entry
|
|
||||||
# #completely from the document
|
|
||||||
# try:
|
|
||||||
# metadata_type = MetadataType.objects.get(id=item['id'])
|
|
||||||
# document_metadata = DocumentMetadata.objects.get(
|
|
||||||
# document=document,
|
|
||||||
# metadata_type=metadata_type
|
|
||||||
# )
|
|
||||||
# document_metadata.delete()
|
|
||||||
# except ObjectDoesNotExist:
|
|
||||||
# pass
|
|
||||||
|
|
||||||
|
|
||||||
def save_metadata(metadata_dict, document, create=False):
|
def save_metadata(metadata_dict, document, create=False):
|
||||||
"""save metadata_dict"""
|
"""save metadata_dict"""
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ from django.forms.formsets import formset_factory
|
|||||||
|
|
||||||
from metadata.conf.settings import AVAILABLE_MODELS
|
from metadata.conf.settings import AVAILABLE_MODELS
|
||||||
from metadata.conf.settings import AVAILABLE_FUNCTIONS
|
from metadata.conf.settings import AVAILABLE_FUNCTIONS
|
||||||
from metadata.models import MetadataType, DocumentMetadata
|
from metadata.models import MetadataType
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MetadataForm(forms.Form):
|
class MetadataForm(forms.Form):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(MetadataForm, self).__init__(*args, **kwargs)
|
super(MetadataForm, self).__init__(*args, **kwargs)
|
||||||
@@ -63,5 +63,5 @@ class AddMetadataForm(forms.Form):
|
|||||||
|
|
||||||
class MetadataRemoveForm(MetadataForm):
|
class MetadataRemoveForm(MetadataForm):
|
||||||
update = forms.BooleanField(initial=False, label=_(u'Remove'), required=False)
|
update = forms.BooleanField(initial=False, label=_(u'Remove'), required=False)
|
||||||
|
|
||||||
MetadataRemoveFormSet = formset_factory(MetadataRemoveForm, extra=0)
|
MetadataRemoveFormSet = formset_factory(MetadataRemoveForm, extra=0)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ def metadata_edit(request, document_id=None, document_id_list=None):
|
|||||||
documents = [get_object_or_404(Document, pk=document_id)]
|
documents = [get_object_or_404(Document, pk=document_id)]
|
||||||
if documents[0].documentmetadata_set.count() == 0:
|
if documents[0].documentmetadata_set.count() == 0:
|
||||||
messages.warning(request, _(u'The selected document doesn\'t have any metadata.'))
|
messages.warning(request, _(u'The selected document doesn\'t have any metadata.'))
|
||||||
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
||||||
elif document_id_list:
|
elif document_id_list:
|
||||||
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
||||||
else:
|
else:
|
||||||
@@ -60,8 +60,8 @@ def metadata_edit(request, document_id=None, document_id_list=None):
|
|||||||
warnings = delete_indexes(document)
|
warnings = delete_indexes(document)
|
||||||
if request.user.is_staff or request.user.is_superuser:
|
if request.user.is_staff or request.user.is_superuser:
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
messages.warning(request, _(u'Error deleting document indexes; %s') % warning)
|
messages.warning(request, _(u'Error deleting document indexes; %s') % warning)
|
||||||
|
|
||||||
errors = []
|
errors = []
|
||||||
for form in formset.forms:
|
for form in formset.forms:
|
||||||
if form.cleaned_data['update']:
|
if form.cleaned_data['update']:
|
||||||
@@ -80,7 +80,7 @@ def metadata_edit(request, document_id=None, document_id_list=None):
|
|||||||
warnings = update_indexes(document)
|
warnings = update_indexes(document)
|
||||||
if warnings and (request.user.is_staff or request.user.is_superuser):
|
if warnings and (request.user.is_staff or request.user.is_superuser):
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
messages.warning(request, _(u'Error updating document indexes; %s') % warning)
|
messages.warning(request, _(u'Error updating document indexes; %s') % warning)
|
||||||
else:
|
else:
|
||||||
messages.success(request, _(u'Document indexes updated successfully.'))
|
messages.success(request, _(u'Document indexes updated successfully.'))
|
||||||
|
|
||||||
@@ -118,7 +118,6 @@ def metadata_add(request, document_id=None, document_id_list=None):
|
|||||||
messages.error(request, _(u'Must provide at least one document.'))
|
messages.error(request, _(u'Must provide at least one document.'))
|
||||||
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
||||||
|
|
||||||
metadata = {}
|
|
||||||
for document in documents:
|
for document in documents:
|
||||||
RecentDocument.objects.add_document_for_user(request.user, document)
|
RecentDocument.objects.add_document_for_user(request.user, document)
|
||||||
|
|
||||||
@@ -142,7 +141,7 @@ def metadata_add(request, document_id=None, document_id_list=None):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
form = AddMetadataForm()
|
form = AddMetadataForm()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
#'form_display_mode_table': True,
|
#'form_display_mode_table': True,
|
||||||
'form': form,
|
'form': form,
|
||||||
@@ -169,7 +168,7 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
|||||||
if documents[0].documentmetadata_set.count() == 0:
|
if documents[0].documentmetadata_set.count() == 0:
|
||||||
messages.warning(request, _(u'The selected document doesn\'t have any metadata.'))
|
messages.warning(request, _(u'The selected document doesn\'t have any metadata.'))
|
||||||
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
|
||||||
|
|
||||||
elif document_id_list:
|
elif document_id_list:
|
||||||
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
||||||
else:
|
else:
|
||||||
@@ -204,8 +203,8 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
|||||||
warnings = delete_indexes(document)
|
warnings = delete_indexes(document)
|
||||||
if request.user.is_staff or request.user.is_superuser:
|
if request.user.is_staff or request.user.is_superuser:
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
messages.warning(request, _(u'Error deleting document indexes; %s') % warning)
|
messages.warning(request, _(u'Error deleting document indexes; %s') % warning)
|
||||||
|
|
||||||
for form in formset.forms:
|
for form in formset.forms:
|
||||||
if form.cleaned_data['update']:
|
if form.cleaned_data['update']:
|
||||||
metadata_type = get_object_or_404(MetadataType, pk=form.cleaned_data['id'])
|
metadata_type = get_object_or_404(MetadataType, pk=form.cleaned_data['id'])
|
||||||
@@ -221,7 +220,7 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
|||||||
warnings = update_indexes(document)
|
warnings = update_indexes(document)
|
||||||
if warnings and (request.user.is_staff or request.user.is_superuser):
|
if warnings and (request.user.is_staff or request.user.is_superuser):
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
messages.warning(request, _(u'Error updating document indexes; %s') % warning)
|
messages.warning(request, _(u'Error updating document indexes; %s') % warning)
|
||||||
else:
|
else:
|
||||||
messages.success(request, _(u'Document indexes updated successfully.'))
|
messages.success(request, _(u'Document indexes updated successfully.'))
|
||||||
|
|
||||||
@@ -229,7 +228,7 @@ def metadata_remove(request, document_id=None, document_id_list=None):
|
|||||||
return HttpResponseRedirect(document.get_absolute_url())
|
return HttpResponseRedirect(document.get_absolute_url())
|
||||||
elif len(documents) > 1:
|
elif len(documents) > 1:
|
||||||
return HttpResponseRedirect(reverse('document_list_recent'))
|
return HttpResponseRedirect(reverse('document_list_recent'))
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'form_display_mode_table': True,
|
'form_display_mode_table': True,
|
||||||
'form': formset,
|
'form': formset,
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ if CACHE_URI:
|
|||||||
cache_backend = get_cache(CACHE_URI)
|
cache_backend = get_cache(CACHE_URI)
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# TODO: display or log error
|
# TODO: display or log error
|
||||||
cache_backend = None
|
cache_backend = None
|
||||||
else:
|
else:
|
||||||
cache_backend = None
|
cache_backend = None
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ def task_process_document_queues():
|
|||||||
|
|
||||||
# reset_orphans()
|
# reset_orphans()
|
||||||
# Causes problems with big clusters increased latency
|
# Causes problems with big clusters increased latency
|
||||||
# Disabled until better solution
|
# Disabled until better solution
|
||||||
q_pending = Q(state=QUEUEDOCUMENT_STATE_PENDING)
|
q_pending = Q(state=QUEUEDOCUMENT_STATE_PENDING)
|
||||||
q_delayed = Q(delay=True)
|
q_delayed = Q(delay=True)
|
||||||
q_delay_interval = Q(datetime_submitted__lt=datetime.now() - timedelta(seconds=REPLICATION_DELAY))
|
q_delay_interval = Q(datetime_submitted__lt=datetime.now() - timedelta(seconds=REPLICATION_DELAY))
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ class Permission(models.Model):
|
|||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.label
|
return self.label
|
||||||
|
|
||||||
def get_holders(self):
|
def get_holders(self):
|
||||||
return [holder.holder_object for holder in self.permissionholder_set.all()]
|
return [holder.holder_object for holder in self.permissionholder_set.all()]
|
||||||
|
|
||||||
def has_permission(self, requester):
|
def has_permission(self, requester):
|
||||||
if isinstance(requester, User):
|
if isinstance(requester, User):
|
||||||
if requester.is_superuser or requester.is_staff:
|
if requester.is_superuser or requester.is_staff:
|
||||||
@@ -38,8 +38,8 @@ class Permission(models.Model):
|
|||||||
# Request is one of the permission's holders?
|
# Request is one of the permission's holders?
|
||||||
if requester in self.get_holders():
|
if requester in self.get_holders():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# If not check if the requesters memberships objects is one of
|
# If not check if the requesters memberships objects is one of
|
||||||
# the permission's holder?
|
# the permission's holder?
|
||||||
roles = RoleMember.objects.get_roles_for_member(requester)
|
roles = RoleMember.objects.get_roles_for_member(requester)
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ class Permission(models.Model):
|
|||||||
groups = requester.groups.all()
|
groups = requester.groups.all()
|
||||||
else:
|
else:
|
||||||
groups = []
|
groups = []
|
||||||
|
|
||||||
for membership in list(set(roles) | set(groups)):
|
for membership in list(set(roles) | set(groups)):
|
||||||
if self.has_permission(membership):
|
if self.has_permission(membership):
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -191,19 +191,19 @@ def add_role_member(role, selection):
|
|||||||
new_member, created = RoleMember.objects.get_or_create(role=role, member_type=ct, member_id=pk)
|
new_member, created = RoleMember.objects.get_or_create(role=role, member_type=ct, member_id=pk)
|
||||||
if not created:
|
if not created:
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
def remove_role_member(role, selection):
|
def remove_role_member(role, selection):
|
||||||
model, pk = selection.split(u',')
|
model, pk = selection.split(u',')
|
||||||
ct = ContentType.objects.get(model=model)
|
ct = ContentType.objects.get(model=model)
|
||||||
member = RoleMember.objects.get(role=role, member_type=ct, member_id=pk)
|
member = RoleMember.objects.get(role=role, member_type=ct, member_id=pk)
|
||||||
member.delete()
|
member.delete()
|
||||||
|
|
||||||
|
|
||||||
def role_members(request, role_id):
|
def role_members(request, role_id):
|
||||||
check_permissions(request.user, 'permissions', [PERMISSION_ROLE_EDIT])
|
check_permissions(request.user, 'permissions', [PERMISSION_ROLE_EDIT])
|
||||||
role = get_object_or_404(Role, pk=role_id)
|
role = get_object_or_404(Role, pk=role_id)
|
||||||
|
|
||||||
return assign_remove(
|
return assign_remove(
|
||||||
request,
|
request,
|
||||||
left_list=lambda: generate_choices_w_labels(get_non_role_members(role)),
|
left_list=lambda: generate_choices_w_labels(get_non_role_members(role)),
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ settings = {}
|
|||||||
def register_setting(namespace, module, name, global_name, default, exists=False, description=u'', hidden=False):
|
def register_setting(namespace, module, name, global_name, default, exists=False, description=u'', hidden=False):
|
||||||
# Create namespace if it doesn't exists
|
# Create namespace if it doesn't exists
|
||||||
settings.setdefault(namespace, [])
|
settings.setdefault(namespace, [])
|
||||||
|
|
||||||
# If passed a string and not a module, import it
|
# If passed a string and not a module, import it
|
||||||
if isinstance(module, basestring):
|
if isinstance(module, basestring):
|
||||||
module = import_module(module)
|
module = import_module(module)
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
'module': module,
|
'module': module,
|
||||||
'name': name,
|
'name': name,
|
||||||
@@ -21,14 +21,14 @@ def register_setting(namespace, module, name, global_name, default, exists=False
|
|||||||
'default': default,
|
'default': default,
|
||||||
'hidden': hidden,
|
'hidden': hidden,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Avoid multiple appends
|
# Avoid multiple appends
|
||||||
if setting not in settings[namespace]:
|
if setting not in settings[namespace]:
|
||||||
settings[namespace].append(setting)
|
settings[namespace].append(setting)
|
||||||
|
|
||||||
# Get the global value
|
# Get the global value
|
||||||
value = getattr(django_settings, global_name, default)
|
value = getattr(django_settings, global_name, default)
|
||||||
|
|
||||||
# Create the local entity
|
# Create the local entity
|
||||||
setattr(module, name, value)
|
setattr(module, name, value)
|
||||||
return value
|
return value
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ register_permissions('user_management', [
|
|||||||
{'name': PERMISSION_GROUP_CREATE, 'label': _(u'Create new groups')},
|
{'name': PERMISSION_GROUP_CREATE, 'label': _(u'Create new groups')},
|
||||||
{'name': PERMISSION_GROUP_EDIT, 'label': _(u'Edit existing groups')},
|
{'name': PERMISSION_GROUP_EDIT, 'label': _(u'Edit existing groups')},
|
||||||
{'name': PERMISSION_GROUP_VIEW, 'label': _(u'View existing groups')},
|
{'name': PERMISSION_GROUP_VIEW, 'label': _(u'View existing groups')},
|
||||||
{'name': PERMISSION_GROUP_DELETE, 'label': _(u'Delete existing groups')},
|
{'name': PERMISSION_GROUP_DELETE, 'label': _(u'Delete existing groups')},
|
||||||
])
|
])
|
||||||
|
|
||||||
user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': {'namespace': 'user_management', 'permissions': [PERMISSION_USER_VIEW]}}
|
user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': {'namespace': 'user_management', 'permissions': [PERMISSION_USER_VIEW]}}
|
||||||
@@ -43,9 +43,9 @@ group_multiple_delete = {u'text': _('delete'), 'view': 'group_multiple_delete',
|
|||||||
group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': {'namespace': 'user_management', 'permissions': [PERMISSION_GROUP_EDIT]}}
|
group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': {'namespace': 'user_management', 'permissions': [PERMISSION_GROUP_EDIT]}}
|
||||||
|
|
||||||
register_links(User, [user_edit, user_set_password, user_delete])
|
register_links(User, [user_edit, user_set_password, user_delete])
|
||||||
register_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', 'user_list','user_add'], [user_add, user_list], menu_name=u'sidebar')
|
register_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', 'user_list', 'user_add'], [user_add, user_list], menu_name=u'sidebar')
|
||||||
register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete])
|
register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete])
|
||||||
|
|
||||||
register_links(Group, [group_edit, group_members, group_delete])
|
register_links(Group, [group_edit, group_members, group_delete])
|
||||||
register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list','group_add', 'group_members'], [group_add, group_list], menu_name=u'sidebar')
|
register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_add, group_list], menu_name=u'sidebar')
|
||||||
register_multi_item_links(['group_list'], [group_multiple_delete])
|
register_multi_item_links(['group_list'], [group_multiple_delete])
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ urlpatterns = patterns('user_management.views',
|
|||||||
url(r'^user/multiple/delete/$', 'user_multiple_delete', (), 'user_multiple_delete'),
|
url(r'^user/multiple/delete/$', 'user_multiple_delete', (), 'user_multiple_delete'),
|
||||||
url(r'^user/(?P<user_id>\d+)/set_password/$', 'user_set_password', (), 'user_set_password'),
|
url(r'^user/(?P<user_id>\d+)/set_password/$', 'user_set_password', (), 'user_set_password'),
|
||||||
url(r'^user/multiple/set_password/$', 'user_multiple_set_password', (), 'user_multiple_set_password'),
|
url(r'^user/multiple/set_password/$', 'user_multiple_set_password', (), 'user_multiple_set_password'),
|
||||||
|
|
||||||
url(r'^group/list/$', 'group_list', (), 'group_list'),
|
url(r'^group/list/$', 'group_list', (), 'group_list'),
|
||||||
url(r'^group/add/$', 'group_add', (), 'group_add'),
|
url(r'^group/add/$', 'group_add', (), 'group_add'),
|
||||||
url(r'^group/(?P<group_id>\d+)/edit/$', 'group_edit', (), 'group_edit'),
|
url(r'^group/(?P<group_id>\d+)/edit/$', 'group_edit', (), 'group_edit'),
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ from django.contrib import messages
|
|||||||
from django.views.generic.list_detail import object_list
|
from django.views.generic.list_detail import object_list
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.contrib.auth.models import User, Group
|
from django.contrib.auth.models import User, Group
|
||||||
from django.contrib.contenttypes.models import ContentType
|
|
||||||
|
|
||||||
from permissions.api import check_permissions
|
from permissions.api import check_permissions
|
||||||
from common.utils import generate_choices_w_labels, two_state_template
|
from common.utils import generate_choices_w_labels, two_state_template
|
||||||
@@ -38,7 +37,8 @@ def user_list(request):
|
|||||||
{
|
{
|
||||||
'name': _(u'email'),
|
'name': _(u'email'),
|
||||||
'attribute': 'email'
|
'attribute': 'email'
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
'name': _(u'active'),
|
'name': _(u'active'),
|
||||||
'attribute': lambda x: two_state_template(x.is_active),
|
'attribute': lambda x: two_state_template(x.is_active),
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ def user_edit(request, user_id):
|
|||||||
if user.is_superuser or user.is_staff:
|
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.'))
|
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', '/'))
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = UserForm(instance=user, data=request.POST)
|
form = UserForm(instance=user, data=request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@@ -145,8 +145,8 @@ def user_multiple_delete(request):
|
|||||||
return user_delete(
|
return user_delete(
|
||||||
request, user_id_list=request.GET.get('id_list', [])
|
request, user_id_list=request.GET.get('id_list', [])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def user_set_password(request, user_id=None, user_id_list=None):
|
def user_set_password(request, user_id=None, user_id_list=None):
|
||||||
check_permissions(request.user, 'user_management', [PERMISSION_USER_EDIT])
|
check_permissions(request.user, 'user_management', [PERMISSION_USER_EDIT])
|
||||||
post_action_redirect = None
|
post_action_redirect = None
|
||||||
@@ -181,7 +181,7 @@ def user_set_password(request, user_id=None, user_id_list=None):
|
|||||||
except Exception, e:
|
except Exception, e:
|
||||||
messages.error(request, _(u'Error reseting password for user "%(user)s": %(error)s') % {
|
messages.error(request, _(u'Error reseting password for user "%(user)s": %(error)s') % {
|
||||||
'user': user, 'error': e
|
'user': user, 'error': e
|
||||||
})
|
})
|
||||||
|
|
||||||
return HttpResponseRedirect(next)
|
return HttpResponseRedirect(next)
|
||||||
else:
|
else:
|
||||||
@@ -198,7 +198,7 @@ def user_set_password(request, user_id=None, user_id_list=None):
|
|||||||
context['title'] = _(u'Reseting password for user: %s') % ', '.join([unicode(d) for d in users])
|
context['title'] = _(u'Reseting password for user: %s') % ', '.join([unicode(d) for d in users])
|
||||||
elif len(users) > 1:
|
elif len(users) > 1:
|
||||||
context['title'] = _(u'Reseting password for users: %s') % ', '.join([unicode(d) for d in users])
|
context['title'] = _(u'Reseting password for users: %s') % ', '.join([unicode(d) for d in users])
|
||||||
|
|
||||||
return render_to_response('generic_form.html', context,
|
return render_to_response('generic_form.html', context,
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ def user_multiple_set_password(request):
|
|||||||
return user_set_password(
|
return user_set_password(
|
||||||
request, user_id_list=request.GET.get('id_list', [])
|
request, user_id_list=request.GET.get('id_list', [])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def group_list(request):
|
def group_list(request):
|
||||||
check_permissions(request.user, 'user_management', [PERMISSION_GROUP_VIEW])
|
check_permissions(request.user, 'user_management', [PERMISSION_GROUP_VIEW])
|
||||||
@@ -319,7 +319,7 @@ def group_multiple_delete(request):
|
|||||||
return group_delete(
|
return group_delete(
|
||||||
request, group_id_list=request.GET.get('id_list', [])
|
request, group_id_list=request.GET.get('id_list', [])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_group_members(group):
|
def get_group_members(group):
|
||||||
return group.user_set.all()
|
return group.user_set.all()
|
||||||
@@ -332,12 +332,12 @@ def get_non_group_members(group):
|
|||||||
def group_members(request, group_id):
|
def group_members(request, group_id):
|
||||||
check_permissions(request.user, 'user_management', [PERMISSION_GROUP_EDIT])
|
check_permissions(request.user, 'user_management', [PERMISSION_GROUP_EDIT])
|
||||||
group = get_object_or_404(Group, pk=group_id)
|
group = get_object_or_404(Group, pk=group_id)
|
||||||
|
|
||||||
return assign_remove(
|
return assign_remove(
|
||||||
request,
|
request,
|
||||||
left_list=lambda: generate_choices_w_labels(get_non_group_members(group), display_object_type=False),
|
left_list=lambda: generate_choices_w_labels(get_non_group_members(group), display_object_type=False),
|
||||||
right_list=lambda: generate_choices_w_labels(get_group_members(group), display_object_type=False),
|
right_list=lambda: generate_choices_w_labels(get_group_members(group), display_object_type=False),
|
||||||
add_method=lambda x: group.user_set.add(x),
|
add_method=lambda x: group.user_set.add(x),
|
||||||
remove_method=lambda x: group.user_set.remove(x),
|
remove_method=lambda x: group.user_set.remove(x),
|
||||||
left_list_title=_(u'non members of group: %s') % group,
|
left_list_title=_(u'non members of group: %s') % group,
|
||||||
right_list_title=_(u'members of group: %s') % group,
|
right_list_title=_(u'members of group: %s') % group,
|
||||||
|
|||||||
Reference in New Issue
Block a user