From 6cf8d6e128b9117f10431eb9b534e9c8b1024cdf Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Sun, 8 Feb 2009 14:00:11 +1100 Subject: [views] Allow Order class to be user-editable This can be enabled with the editable_order parameter to generic_list Signed-off-by: Jeremy Kerr --- apps/patchwork/utils.py | 8 ++++++-- apps/patchwork/views/__init__.py | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'apps/patchwork') diff --git a/apps/patchwork/utils.py b/apps/patchwork/utils.py index 07c71e2..63daa85 100644 --- a/apps/patchwork/utils.py +++ b/apps/patchwork/utils.py @@ -48,8 +48,12 @@ class Order(object): } default_order = ('date', True) - def __init__(self, str = None): + def __init__(self, str = None, editable = False): self.reversed = False + self.editable = editable + + if self.editable: + return if str is None or str == '': (self.order, self.reversed) = self.default_order @@ -114,7 +118,7 @@ def set_bundle(user, project, action, data, patches, context): for patch in patches: if action == 'create' or action == 'add': - bundle.patches.add(patch) + bundle.append_patch(patch) elif action == 'remove': bundle.patches.remove(patch) diff --git a/apps/patchwork/views/__init__.py b/apps/patchwork/views/__init__.py index 4aadce4..3f50380 100644 --- a/apps/patchwork/views/__init__.py +++ b/apps/patchwork/views/__init__.py @@ -24,14 +24,15 @@ from patchwork.paginator import Paginator from patchwork.forms import MultiplePatchForm def generic_list(request, project, view, - view_args = {}, filter_settings = [], patches = None): + view_args = {}, filter_settings = [], patches = None, + editable_order = False): context = PatchworkRequestContext(request, list_view = view, list_view_params = view_args) context.project = project - order = Order(request.REQUEST.get('order')) + order = Order(request.REQUEST.get('order'), editable = editable_order) form = MultiplePatchForm(project) @@ -75,7 +76,8 @@ def generic_list(request, project, view, patches = Patch.objects.filter(project=project) patches = context.filters.apply(patches) - patches = patches.order_by(order.query()) + if not editable_order: + patches = patches.order_by(order.query()) paginator = Paginator(request, patches) -- cgit v1.2.3