X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/d7faec10cb85ad286673eec266ccc397142bc20c..f56133b11cb6af69972b062012890057ee9f3ea7:/apps/catalogue/views.py?ds=sidebyside diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index f8ff5996..657a1257 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -391,19 +391,47 @@ def chunk_edit(request, slug, chunk): @transaction.commit_on_success def chunk_mass_edit(request): if request.method == 'POST': - ids = map(int, request.POST.get('ids').split(',')) + ids = map(int, filter(lambda i: i.strip()!='', request.POST.get('ids').split(','))) chunks = map(lambda i: Chunk.objects.get(id=i), ids) - try: - stage = Chunk.tag_model.objects.get(slug=request.POST.get('stage')) + + stage = request.POST.get('stage') + if stage: + try: + stage = Chunk.tag_model.objects.get(slug=stage) + except Chunk.DoesNotExist, e: + stage = None + for c in chunks: c.stage = stage - except KeyError: pass - try: - user = User.objects.get(username=request.POST.get('user')) + username = request.POST.get('user') + logger.info("username: %s" % username) + logger.info(request.POST) + if username: + try: + user = User.objects.get(username=username) + except User.DoesNotExist, e: + user = None + for c in chunks: c.user = user - except KeyError: pass + + status = request.POST.get('status') + if status: + books_affected = set() + for c in chunks: + if status == 'publish': + c.head.publishable = True + c.head.save() + elif status == 'unpublish': + c.head.publishable = False + c.head.save() + c.touch() # cache + books_affected.add(c.book) + for b in books_affected: + b.touch() # cache for c in chunks: c.save() + + return HttpResponse("", content_type="text/plain") else: raise Http404