|
@@ -15,6 +15,14 @@ from django.contrib.auth.mixins import UserPassesTestMixin
|
|
|
from django_tables2 import SingleTableView
|
|
|
from sharix_admin.tables import PartnersTable
|
|
|
|
|
|
+from django.contrib.auth.decorators import login_required
|
|
|
+from django.http import JsonResponse
|
|
|
+from django.utils.translation import gettext as _
|
|
|
+from django_tables2 import SingleTableView
|
|
|
+
|
|
|
+from sharix_admin.tables import PartnersTable
|
|
|
+from sharix_admin.utils import group_required
|
|
|
+
|
|
|
class PartnerBaseView(BaseView):
|
|
|
page_name = 'partner'
|
|
|
|
|
@@ -173,22 +181,63 @@ class PartnerDocView(PartnerBaseView, DetailView):
|
|
|
|
|
|
|
|
|
class PartnersListView(UserPassesTestMixin, SingleTableView):
|
|
|
+ page_title = _('Партнеры')
|
|
|
+ page_name = 'partners'
|
|
|
table_class = PartnersTable
|
|
|
queryset = Company.objects.all()
|
|
|
- template_name = 'sharix_admin/service_tariffs.html'
|
|
|
+ template_name = 'sharix_admin/partners.html'
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+ queryset = super().get_queryset()
|
|
|
+ search_query = self.request.GET.get('q', '').strip()
|
|
|
+ if search_query:
|
|
|
+ queryset = queryset.filter(
|
|
|
+ Q(id__icontains=search_query) |
|
|
|
+ Q(legalname__icontains=search_query) |
|
|
|
+ Q(inn__icontains=search_query) |
|
|
|
+ Q(orgn__icontains=search_query) |
|
|
|
+ Q(address__icontains=search_query)
|
|
|
+ ).distinct()
|
|
|
+ return queryset
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
- context.update(get_context(self.request, {
|
|
|
- 'title': _('Performers'),
|
|
|
+ context.update({
|
|
|
'object_list': context['object_list'],
|
|
|
- }))
|
|
|
+ })
|
|
|
return context
|
|
|
|
|
|
+ def testing(self, queryset, is_descending):
|
|
|
+ queryset = queryset.annotate.order_by("-" if is_descending else "")
|
|
|
+ return (queryset, True)
|
|
|
+
|
|
|
+
|
|
|
+# def get_context_data(self, **kwargs):
|
|
|
+# context = super().get_context_data(**kwargs)
|
|
|
+# context.update(get_context(self.request, {
|
|
|
+# 'title': _('Performers'),
|
|
|
+# 'object_list': context['object_list'],
|
|
|
+# }))
|
|
|
+# return context
|
|
|
+
|
|
|
def test_func(self) -> bool or None:
|
|
|
- group_names = ('PARTNER-ADMIN')
|
|
|
- if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
|
|
|
- return True
|
|
|
- return False
|
|
|
+ # group_names = ('PARTNER-ADMIN')
|
|
|
+ # if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
|
|
|
+ # return True
|
|
|
+ # return False
|
|
|
+ return True
|
|
|
+
|
|
|
+@login_required
|
|
|
+@group_required('METASERVICE-ADMIN')
|
|
|
+def change_partner_status(request):
|
|
|
+ if request.method == 'POST':
|
|
|
+ partners_id = request.POST.get('partners_id')
|
|
|
+ new_status = request.POST.get('new_status')
|
|
|
+ partners = Company.objects.get(pk=partners_id)
|
|
|
+ partners.status = new_status
|
|
|
+ partners.save()
|
|
|
+ return JsonResponse({'status': 'success'})
|
|
|
+ else:
|
|
|
+ return JsonResponse({'status': 'error'})
|
|
|
|
|
|
|