|
|
|
|
@ -11,7 +11,7 @@ from django.contrib import messages |
|
|
|
|
from django.db.models import Q |
|
|
|
|
from django.core.urlresolvers import reverse |
|
|
|
|
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger |
|
|
|
|
from django.http import JsonResponse, HttpResponse |
|
|
|
|
from django.http import JsonResponse, HttpResponse, HttpResponseForbidden |
|
|
|
|
from django.core.files.base import ContentFile |
|
|
|
|
from django.views.generic import ListView, DetailView, CreateView, View, \ |
|
|
|
|
UpdateView, DeleteView, TemplateView |
|
|
|
|
@ -86,7 +86,7 @@ class WorkSellFilterView(BaseMixin,View): |
|
|
|
|
keywords = tuple(filter(None, re.split(r'\s|,|;', keywords))) |
|
|
|
|
|
|
|
|
|
for k in keywords: |
|
|
|
|
work_sells = work_sells.filter(Q(name__icontains=k) | Q(text__icontains=k)) |
|
|
|
|
work_sells = work_sells.filter(Q(name__icontains=k) | Q(description__icontains=k)) |
|
|
|
|
|
|
|
|
|
if specialization: |
|
|
|
|
work_sells = work_sells.filter( |
|
|
|
|
@ -127,9 +127,6 @@ class WorkSellFilterView(BaseMixin,View): |
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class WorkSellDetail(DetailView): |
|
|
|
|
model = WorkSell |
|
|
|
|
template_name = 'worksell_detail.html' |
|
|
|
|
@ -174,6 +171,12 @@ class WorkSellUpdateView(UpdateView): |
|
|
|
|
form_class = WorkSellForm |
|
|
|
|
template_name = 'worksell_edit.html' |
|
|
|
|
|
|
|
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
|
|
# import code; code.interact(local=dict(globals(), **locals())) |
|
|
|
|
if self.get_object().contractor_id != request.user.pk: |
|
|
|
|
return HttpResponseForbidden('403 Forbidden') |
|
|
|
|
return super().dispatch(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
|
return reverse('work_sell:list') |
|
|
|
|
|
|
|
|
|
|