Browse Source

Fix bug when create new task

devel
bashmak 8 years ago
parent
commit
689b802fbc
  1. 15
      djing/__init__.py
  2. 5
      taskapp/views.py

15
djing/__init__.py

@ -2,10 +2,14 @@ import os
import re
import importlib
import typing as t
from urllib.parse import unquote
from django.shortcuts import _get_queryset
from django.http import HttpResponseRedirect, HttpResponse
from netaddr import mac_unix, mac_eui48
from django.shortcuts import _get_queryset
from django.utils.http import is_safe_url
MAC_ADDR_REGEX = r'^([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]{1,2})$'
IP_ADDR_REGEX = r'^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
@ -76,3 +80,12 @@ _JSONType_1 = t.Union[str, int, float, bool, None, t.Dict[str, _JSONType_0], t.L
_JSONType_2 = t.Union[str, int, float, bool, None, t.Dict[str, _JSONType_1], t.List[_JSONType_1]]
_JSONType_3 = t.Union[str, int, float, bool, None, t.Dict[str, _JSONType_2], t.List[_JSONType_2]]
JSONType = t.Union[str, int, float, bool, None, t.Dict[str, _JSONType_3], t.List[_JSONType_3]]
def httpresponse_to_referrer(request):
next = request.META.get('HTTP_REFERER')
if next:
next = unquote(next)
if not is_safe_url(url=next, allowed_hosts={request.get_host()}, require_https=request.is_secure()):
next = '/'
return HttpResponseRedirect(next) if next else HttpResponse(status=204)

5
taskapp/views.py

@ -17,6 +17,7 @@ from django.views.generic.edit import FormMixin, DeleteView, UpdateView
from guardian.decorators import permission_required_or_403 as permission_required
from chatbot.models import MessageQueue
from abonapp.models import Abon
from djing import httpresponse_to_referrer
from .handle import TaskException
from .models import Task, ExtraComment
from mydefs import only_admins, safe_int, MultipleException, RuTimedelta
@ -137,7 +138,11 @@ class TaskUpdateView(UpdateView):
else:
if not request.user.has_perm('taskapp.change_task'):
raise PermissionDenied
try:
return super(TaskUpdateView, self).dispatch(request, *args, **kwargs)
except TaskException as e:
messages.error(request, e)
return httpresponse_to_referrer(request)
def get_form_kwargs(self):
kwargs = super(TaskUpdateView, self).get_form_kwargs()

Loading…
Cancel
Save