def ticket_close(request, ticket_id): ticket = get_object_or_404(models.Ticket.userobjects.active(), pk=ticket_id) if not ticket.is_open: messages.info(request, _("Ticket are already closed")) return HttpResponseRedirect(reverse('ticket_detail', args=[ticket.id])) ticket.finished_at = datetime.datetime.now() ticket.save() messages.info(request, MSG_FORM_SAVED) referer = get_referer_view(request) return HttpResponseRedirect(referer)
def toggle_active_collection(request, user_id, collection_id): ''' Redefine the active collection, changing the administrative context to another collection. ''' # Setting up all user collections.is_default to False user_collections = models.get_user_collections(request.user.id) # Clear cache when changes in UserCollections invalid = [collection for collection in user_collections] models.UserCollections.objects.invalidate(*invalid) collection = get_object_or_404(models.Collection, pk=collection_id) collection.make_default_to_user(request.user) referer = get_referer_view(request) return HttpResponseRedirect(referer)
def generic_bulk_action(request, model_name, action_name, value=None): info_msg = None MSG_MOVED = _('The selected documents had been moved to the Trash.') MSG_RESTORED = _('The selected documents had been restored.') model_refs = { 'journal': models.Journal, 'section': models.Section, 'sponsor': models.Sponsor, } model = model_refs.get(model_name) if request.method == 'POST': items = request.POST.getlist('action') for doc_id in items: doc = get_object_or_404(model, pk=doc_id) #toggle doc availability if action_name == 'is_available': if isinstance(doc, models.Journal): doc.is_trashed = True if int(value) == 0 else False doc.save() info_msg = MSG_MOVED if doc.is_trashed else MSG_RESTORED elif isinstance(doc, models.Section): if not doc.is_used(): doc.is_trashed = True if int(value) == 0 else False doc.save() info_msg = MSG_MOVED if doc.is_trashed else MSG_RESTORED elif isinstance(doc, models.Institution): doc.is_trashed = True if int(value) == 0 else False doc.save() info_msg = MSG_MOVED if doc.is_trashed else MSG_RESTORED if info_msg: messages.info(request, info_msg) return HttpResponseRedirect(get_referer_view(request))