def edit_context(request, pk): unit = get_object_or_404(Unit, pk=pk) if not unit.is_source and not unit.translation.component.is_glossary: raise Http404("Non source unit!") do_add = "addflag" in request.POST if do_add or "removeflag" in request.POST: if not request.user.has_perm("unit.flag", unit.translation): raise PermissionDenied() flag = request.POST.get("addflag", request.POST.get("removeflag")) flags = Flags(unit.extra_flags) if do_add: flags.merge(flag) else: flags.remove(flag) new_flags = flags.format() if new_flags != unit.extra_flags: unit.extra_flags = new_flags unit.save(same_content=True, update_fields=["extra_flags"]) else: if not request.user.has_perm("source.edit", unit.translation): raise PermissionDenied() form = ContextForm(request.POST, instance=unit, user=request.user) if form.is_valid(): form.save() else: messages.error(request, _("Failed to change additional string info!")) show_form_errors(request, form) return redirect_next(request.POST.get("next"), unit.get_absolute_url())
def edit_context(request, pk): unit = get_object_or_404(Unit, pk=pk) if not unit.is_source: raise Http404("Non source unit!") if not request.user.has_perm("source.edit", unit.translation.component): raise PermissionDenied() form = ContextForm(request.POST, instance=unit, user=request.user) if form.is_valid(): form.save() else: messages.error(request, _("Failed to change a context!")) show_form_errors(request, form) return redirect_next(request.POST.get("next"), unit.get_absolute_url())