You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.8 KiB
102 lines
2.8 KiB
import json
|
|
from django.shortcuts import render
|
|
from django.core.urlresolvers import reverse
|
|
from django.http import JsonResponse, HttpResponse
|
|
from django.views.generic import ListView, DetailView, CreateView, View,\
|
|
UpdateView, DeleteView, TemplateView
|
|
|
|
from projects.models import BuildingClassfication, ConstructionType
|
|
from .models import WorkSell
|
|
from .forms import WorkSellForm
|
|
|
|
class WorkSellsView(ListView):
|
|
model = WorkSell
|
|
template_name = 'worksells_list.html'
|
|
paginate_by = 20
|
|
|
|
def get_form_kwargs(self, **kwargs):
|
|
kwargs = super().get_form_kwargs
|
|
|
|
def get_queryset(self, **kwargs):
|
|
qs = WorkSell.objects.all()
|
|
# if self.request.GET:
|
|
# budget_from = self.request.GET
|
|
# pass
|
|
return qs
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context['building_classifications'] = BuildingClassfication.objects.all()
|
|
context['construction_types'] = ConstructionType.objects.all()
|
|
return context
|
|
|
|
|
|
class WorkSellDetail(DetailView):
|
|
model = WorkSell
|
|
template_name = 'worksell_detail.html'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context['worksell_related'] = WorkSell.objects.all()[:5]
|
|
return context
|
|
|
|
|
|
def work_sell_create(request):
|
|
if request.is_ajax():
|
|
form = WorkSellForm(data=request.POST)
|
|
if form.is_valid():
|
|
instance = form.save(commit=False)
|
|
instance.save()
|
|
data = {'status': 'ok'}
|
|
else:
|
|
data = {'status': 'no', 'form_errors': form.errors}
|
|
return HttpResponse(json.dumps(data), content_type='application/json')
|
|
|
|
|
|
class WorkSellCreateView(CreateView):
|
|
model = WorkSell
|
|
form_class = WorkSellForm
|
|
template_name = 'worksell_create.html'
|
|
|
|
|
|
class WorkSellUpdateView(UpdateView):
|
|
model = WorkSell
|
|
form_class = WorkSellForm
|
|
template_name = 'worksell_edit.html'
|
|
|
|
def get_success_url(self):
|
|
return reverse('work_sell:list')
|
|
|
|
|
|
class WorkSellDeleteView(DeleteView):
|
|
model = WorkSell
|
|
template_name = 'worksell_delete.html'
|
|
|
|
def get_success_url(self):
|
|
return reverse('work_sell:list')
|
|
|
|
|
|
|
|
class UploadView(View):
|
|
template_name = 'upload.html'
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
return render(request,self.template_name)
|
|
|
|
class JSONResponseMixin(object):
|
|
def render_to_json_response(self, context, **response_kwargs):
|
|
return JsonResponse(
|
|
self.get_data(context),
|
|
**response_kwargs
|
|
)
|
|
|
|
def get_data(self, context):
|
|
context = {'test': 'data'}
|
|
return context
|
|
|
|
|
|
class JSONView(JSONResponseMixin, TemplateView):
|
|
def render_to_response(self, context, **response_kwargs):
|
|
return self.render_to_json_response(context, **response_kwargs)
|
|
|
|
|
|
|