X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fviews%2Fpatch.py;h=62ff8531b02967d83094b8732586c1acdbb31b38;hb=f09e982f58384946111d4157fd2b7c2b31b78612;hp=d509e2887d68c70fb135df6b1dc78b345c23020b;hpb=c561ebe710d6e6a43aa4afc6c2036a215378ce87;p=patchwork diff --git a/apps/patchwork/views/patch.py b/apps/patchwork/views/patch.py index d509e28..62ff853 100644 --- a/apps/patchwork/views/patch.py +++ b/apps/patchwork/views/patch.py @@ -18,27 +18,18 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -from patchwork.models import Patch, Project, Person, RegistrationRequest, Bundle -from patchwork.filters import Filters -from patchwork.forms import RegisterForm, LoginForm, PatchForm, MultiplePatchForm, CreateBundleForm -from patchwork.utils import get_patch_ids, set_patches, Order +from patchwork.models import Patch, Project, Bundle +from patchwork.forms import PatchForm, CreateBundleForm from patchwork.requestcontext import PatchworkRequestContext from django.shortcuts import render_to_response, get_object_or_404 -from django.http import HttpResponse, HttpResponseRedirect, \ - HttpResponseForbidden -from django.contrib.auth.models import User -from django.contrib.auth.decorators import login_required -from django.contrib.auth import authenticate, login -import django.core.urlresolvers -from patchwork.paginator import Paginator -from patchwork.views import generic_list +from django.http import HttpResponse, HttpResponseForbidden +from patchwork.views import generic_list, patch_to_mbox def patch(request, patch_id): context = PatchworkRequestContext(request) patch = get_object_or_404(Patch, id=patch_id) context.project = patch.project editable = patch.is_editable(request.user) - messages = [] form = None createbundleform = None @@ -59,7 +50,7 @@ def patch(request, patch_id): data = request.POST) if createbundleform.is_valid(): createbundleform.save() - bundle.patches.add(patch) + bundle.append_patch(patch) bundle.save() createbundleform = CreateBundleForm() context.add_message('Bundle %s created' % bundle.name) @@ -67,11 +58,15 @@ def patch(request, patch_id): elif action == 'addtobundle': bundle = get_object_or_404(Bundle, id = \ request.POST.get('bundle_id')) - bundle.patches.add(patch) - bundle.save() - context.add_message('Patch added to bundle "%s"' % bundle.name) + try: + bundle.append_patch(patch) + bundle.save() + context.add_message('Patch added to bundle "%s"' % bundle.name) + except Exception, ex: + context.add_message("Couldn't add patch '%s' to bundle %s: %s" \ + % (patch.name, bundle.name, ex.message)) - # all other actions require edit privs + # all other actions require edit privs elif not editable: return HttpResponseForbidden() @@ -81,23 +76,6 @@ def patch(request, patch_id): form.save() context.add_message('Patch updated') - elif action == 'archive': - patch.archived = True - patch.save() - context.add_message('Patch archived') - - elif action == 'unarchive': - patch.archived = False - patch.save() - context.add_message('Patch un-archived') - - elif action == 'ack': - pass - - elif action == 'delete': - patch.delete() - - context['patch'] = patch context['patchform'] = form context['createbundleform'] = createbundleform @@ -107,7 +85,7 @@ def patch(request, patch_id): def content(request, patch_id): patch = get_object_or_404(Patch, id=patch_id) - response = HttpResponse(mimetype="text/x-patch") + response = HttpResponse(content_type="text/x-patch") response.write(patch.content) response['Content-Disposition'] = 'attachment; filename=' + \ patch.filename().replace(';', '').replace('\n', '') @@ -115,8 +93,8 @@ def content(request, patch_id): def mbox(request, patch_id): patch = get_object_or_404(Patch, id=patch_id) - response = HttpResponse(mimetype="text/plain") - response.write(patch.mbox().as_string(True)) + response = HttpResponse(content_type="text/plain") + response.write(patch_to_mbox(patch).as_string(True)) response['Content-Disposition'] = 'attachment; filename=' + \ patch.filename().replace(';', '').replace('\n', '') return response @@ -127,54 +105,3 @@ def list(request, project_id): context = generic_list(request, project, 'patchwork.views.patch.list', view_args = {'project_id': project.linkname}) return render_to_response('patchwork/list.html', context) - - context = PatchworkRequestContext(request, - list_view = 'patchwork.views.patch.list', - list_view_params = {'project_id': project_id}) - order = get_order(request) - project = get_object_or_404(Project, linkname=project_id) - context.project = project - - form = None - errors = [] - - if request.method == 'POST': - action = request.POST.get('action', None) - if action: - action = action.lower() - - # special case: the user may have hit enter in the 'create bundle' - # text field, so if non-empty, assume the create action: - if request.POST.get('bundle_name', False): - action = 'create' - - ps = [] - for patch_id in get_patch_ids(request.POST): - try: - patch = Patch.objects.get(id = patch_id) - except Patch.DoesNotExist: - pass - ps.append(patch) - - (errors, form) = set_patches(request.user, action, request.POST, ps) - if errors: - context['errors'] = errors - - - elif request.user.is_authenticated() and \ - project in request.user.get_profile().maintainer_projects.all(): - form = MultiplePatchForm(project) - - patches = Patch.objects.filter(project=project).order_by(order) - patches = context.filters.apply(patches) - - paginator = Paginator(request, patches) - - context.update({ - 'page': paginator.current_page, - 'patchform': form, - 'project': project, - 'errors': errors, - }) - - return render_to_response('patchwork/list.html', context)