Make sure to always used the base filtered source queryset.
Remove the grouped attribute which is subclass specific.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
View that use the MultipleObjectMixin can now fully operate
as single object or multiple object views.
Add the self.view_mode_single and self.view_mode_multiple flags.
Add support for single, singular and plural titles and success
messages via:
success_message_single, success_message_singular,
sucess_message_plural, title_single, title_singular and
title_plural class attributes.
Insert object_list and object as attributes of the view class
to avoid calling the queryset again.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add a new view based on AssignRemove with extra features
and filtering. AddRemoveView also has two new buttons:
Add all, Remove all.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add keyword arguments.
Sort arguments.
Unify the ObjectListPermissionFilterMixin and
ObjectPermissionCheckMixin into the RestrictedQuerysetMixin.
Add MultipleObjectDownloadView.
Update SingleObjectDownloadView to do queryset filtering.
The method that returns the base queryset for views is
now named get_source_queryset().
The views now use .get_object_list as a multi object
homologous of get_object. The queryset returned by
.get_object_list is restricted by access.
Make MultipleObjectMixin a subclass of Django's
SingleObjectMixin to reduce repeated code.
All generic views are now imported from common.generics and not
from common.views.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update the SingleObject Delete, Detail and Download views
to force use of a get_object_list method instead of allowing
subclasses to override the get_queryset method and bypass
the object permission checks.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add an extra step before creation of the instance to validate
for duplication. Add the error_message_duplicate class
attribute to allow customization of the error message.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add a separator under the setup link in the system menu.
Fix the user menu separator which is at the top of the username
and should be udner it.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add a new argument to the SourceColumn class to flag a column as
sortable. The SourceColum will generate a request querystring to
be used as the table header archor href. The SingleObjectListView
will capture the querystring and call the order_by on the queryset
to sort it.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Allow passing a widget class to SourceColumn. This makes
using lambdas to render model column unnecesary and are
mostly removed too.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Add the new generic list and generic list items toolbar which allow
switching the list display mode.
This toolbar also includes a stylized button to select and deselect
all items emulating the check-all checkbox.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Update the generic single object create and edit views to display
critical exceptions instead of just raising them and stoping
execution. The should allow removing duplicated exception to message
code in subclasses of these views.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
Replace all __unicode__ methods to __str__ and the
@python_2_unicode_compatible decorator.
Replace all instance of smart_str, smart_unicode, force_uncode
with force_text.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>