Commit 17a619fc authored by Andrii Marynets's avatar Andrii Marynets

Add post function to list view

parent 416ac5d4
......@@ -153,11 +153,47 @@ class Test(ListView):
template_name = 'test.html'
sort_fields = ('media_id', 'type_id', 'region_id', 'publish_date', 'title')
def post(self, request, *args, **kwargs):
if request.is_ajax():
data = json.loads(request.body.decode('utf-8'))
type_request = data['type']
ids = data['id']
if type_request in ['delete', 'deleteAll']:
self._delete(ids)
if type_request == 'edit':
return HttpResponse({'ids': ids})
if type_request == 'exportAll':
for i in News.objects.filter(pk__in=ids):
i.export_news()
return HttpResponse(200)
return HttpResponse(200)
def get_queryset(self):
filters = self.request.GET
if filters.get('order_by') in self.sort_fields:
if filters.get('reverse'):
self.queryset = self.queryset.reverse()
data = self.request.GET
media = data.get('media')
from_date = data.get('from_date')
to_date = data.get('to_date')
tag = data.get('tag')
search = data.get('search')
order_by = data.get('order_by')
if tag:
self.queryset = self.queryset.filter(tags_id__contains='{},'.format(WpEsiTag.objects.get(name=tag).id))
if data.get('reverse'):
self.queryset = self.queryset.reverse()
if order_by in self.sort_fields:
self.queryset = self.queryset.order_by(order_by)
if search:
self.queryset = self.queryset.filter(Q(title__icontains=search) | Q(description__icontains=search))
if from_date:
self.queryset = self.queryset.filter(publish_date__gte=from_date)
if to_date:
self.queryset = self.queryset.filter(publish_date__lte=to_date)
if media and media != 'All':
self.queryset = self.queryset.filter(media_id=WpEsiMedia.objects.get(name=media).pk)
return self.queryset
def get_context_data(self, **kwargs):
......@@ -168,3 +204,9 @@ class Test(ListView):
min_max_date['publish_date__max'] = str(min_max_date['publish_date__max'].date())
context['date'] = min_max_date
return context
def _delete(self, id):
if isinstance(id, list):
News.objects.filter(id__in=id).update(is_accepted=True)
else:
News.objects.filter(id=id).update(is_accepted=True)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment