def form_valid(self, form):
     data = dict()
     # Перед созданием новой записи проверяем есть ли видео
     if Video.objects.all().exists():
         data['video_exist'] = True
     else:
         data['video_exist'] = False
     # Сохраняем новую запись
     new_video = form.save(commit=False)
     new_video.save()
     # Будет использовано лишь один раз в начале, когда еще нет списка видео
     data['html_videos'] = render_to_string(
         'video/videos.html',
         {
             'videos': Video.objects.all(),
             'perms': PermWrapper(self.request.user),
         }
     )
     # Будет использоваться когда есть список видео
     data['html_video'] = render_to_string(
         'video/video.html',
         {
             'video': new_video,
             'perms': PermWrapper(self.request.user),
         }
     )
     data['video_id'] = new_video.id
     data['form_is_valid'] = True
     return JsonResponse(data)
Example #2
0
 def form_valid(self, form):
     data = dict()
     # Создаем новый вопрос
     new_question = form.save(commit=False)
     new_question.lang = self.kwargs.get('language')
     new_question.save()
     # После создания нового вопроса проверяем наличия вопросов по заданным параметрам
     if FAQ.objects.filter(lang=self.kwargs.get('language')).count() == 1:
         data['question_exist'] = True
         # HTML вопросов
         data['html_questions'] = render_to_string(
             'faq/questions.html', {
                 'questions':
                 FAQ.objects.filter(event_lang=self.kwargs.get('language')),
                 'current_language':
                 self.kwargs.get('language'),
                 'perms':
                 PermWrapper(self.request.user),
             })
     else:
         data['question_exist'] = False
         # HTML нового вопроса
         data['html_question'] = render_to_string(
             'faq/question.html', {
                 'question': new_question,
                 'current_language': self.kwargs.get('language'),
                 'perms': PermWrapper(self.request.user),
             },
             request=self.request)
     # Валидная форма
     data['form_is_valid'] = True
     return JsonResponse(data)
Example #3
0
    def post(self, request, *args, **kwargs):
        val = self.request.POST.get("val", "")
        sort = self.request.POST.get("sort", "-publish_time")
        start = int(self.request.POST.get("start", 0))
        end = int(self.request.POST.get("end", settings.PAGE_NUM))

        if val == 'all':
            category_list = Category.objects.all()
        else:
            category_list = Category.objects.filter(name=val).all()
        article_list = self.get_queryset().filter(
            category__in=category_list).annotate(comment_count=Count(
                'comment_article')).order_by(sort).all()[start:end + 1]

        is_end = len(article_list) != (end - start + 1)
        article_list = article_list[0:end - start]

        html = ""
        for article in article_list:
            html += get_template('article/article_item.html').render({
                'article':
                article,
                'perms':
                PermWrapper(request.user)
            })

        _dict = {"html": html, "isend": is_end}
        return HttpResponse(json.dumps(_dict), content_type="application/json")
    def form_valid(self, form):
        user = form.save(commit=False)
        selected_user_role = form.cleaned_data['user_role']
        selected_use_wysiwyg_editor = form.cleaned_data['use_wysiwyg_editor']
        if "0" in selected_user_role:
            user.is_superuser = True
            for permission in Permission.objects.exclude(
                    codename='use_wysiwyg_editor'):
                user.user_permissions.add(permission)
        elif "1" in selected_user_role:
            user.is_staff = True
            form.save_m2m()
        elif "2" in selected_user_role:
            user.is_superuser = False
            user.is_staff = False
            for permission in Permission.objects.exclude(
                    codename='use_wysiwyg_editor'):
                user.user_permissions.remove(permission)

        if selected_use_wysiwyg_editor:
            user.user_permissions.add(
                Permission.objects.get(codename='use_wysiwyg_editor'))
        elif not selected_use_wysiwyg_editor:
            user.user_permissions.remove(
                Permission.objects.get(codename='use_wysiwyg_editor'))
        user.save()
        data = dict()
        data['form_is_valid'] = True
        context = {
            'users': User.objects.order_by('username'),
            'perms': PermWrapper(self.request.user),
        }
        data['html_users'] = render_to_string('users/users.html', context)
        return JsonResponse(data)
Example #5
0
 def actions(self, fault_type):
     c = {
         'fault_type': fault_type,
         'next': reverse('fault_type_list'),
         'perms': PermWrapper(self.request.user),
     }
     return self.templates['actions'].render(c)
Example #6
0
    def post(self, *args, **kwargs):
        start = int(self.request.POST.get("start"))
        length = int(self.request.POST.get("length"))
        search_term = self.request.POST.get("search[value]")
        draw = int(self.request.POST.get("draw"))

        queryset = self.get_queryset()
        records_total = queryset.count()

        if search_term:
            queryset = filter_by_search_term(queryset, self.filtered_fields,
                                             search_term)

        records_filtered = queryset.count()
        data = []
        queryset_page = queryset[start:start + length]

        for obj in queryset_page:
            html = render_to_string(self.tr_template,
                                    context={
                                        'object': obj,
                                        'user': self.request.user,
                                        'perms': PermWrapper(self.request.user)
                                    })
            tds = split_html_by_tds(html)
            data.append(tds)

        return JsonResponse({
            "draw": draw,
            "recordsTotal": records_total,
            "recordsFiltered": records_filtered,
            "data": data
        })
Example #7
0
def package_list_ajax(request):
    datatable = datatable_utils.PackageDataTable(request.GET)
    data = []
    csrf_token = get_token(request)
    for package in datatable.records:
        data.append(
            get_template("snippets/package_row.html").render({
                "package":
                package,
                "redirect_path":
                request.META.get("HTTP_REFERER", request.path),
                "csrf_token":
                csrf_token,
                "perms":
                PermWrapper(request.user),
            }).strip())
    # these are the values that DataTables expects from the server
    # see "Reply from the server" in http://legacy.datatables.net/usage/server-side
    response = {
        "iTotalRecords": datatable.total_records,
        "iTotalDisplayRecords": datatable.total_display_records,
        "sEcho": datatable.echo,
        "aaData": data,
    }
    return HttpResponse(status=200,
                        content=json.dumps(response),
                        content_type="application/json")
 def buttons(self):
     context = {
         'perms': PermWrapper(self.context['request'].user),
     }
     context.update(csrf(self.context['request']))
     return self.render(
         'netbox_vcenter/virtualmachine/vcenter_refresh.html', context)
Example #9
0
 def test_permwrapper_in(self):
     """
     Test that 'something' in PermWrapper doesn't end up in endless loop.
     """
     perms = PermWrapper(MockUser())
     with self.assertRaises(TypeError):
         self.EQLimiterObject() in perms
 def left_page(self):
     """
     An info-box with edit button for the vCenter settings
     """
     return self.render(
         'netbox_vcenter/cluster/vcenter_info.html',
         {'perms': PermWrapper(self.context['request'].user)})
Example #11
0
 def get_actions(self, tli):
     template = self.templates['actions']
     c = Context({
         "instance": tli,
         "perms": PermWrapper(self.request.user),
         "request": self.request
     })
     return template.render(c)
Example #12
0
    def get_context(self, window_info):
        """provide the same context data as the :mod:`django.contrib.auth.context_processors`:

         * `user`: a user or :class:`django.contrib.auth.models.AnonymousUser`
         * `perms`, with the same meaning
        """
        user = window_info.user or AnonymousUser()
        return {"user": user, "perms": PermWrapper(user)}
Example #13
0
def general_info(request):
    path = request.get_full_path()
    return {
        'nav_tab': FixedSimpleLazyObject(partial(__nav_tab, request.path)),
        'nav_bar': NavigationBar.objects.all(),
        'LOGIN_RETURN_PATH': '' if path.startswith('/accounts/') else path,
        'perms': PermWrapper(request.user),
    }
Example #14
0
 def last_instance_review_status(self, utc):
     template = self.templates['review_status']
     c = {
         'instance': utc.last_instance,
         'perms': PermWrapper(self.request.user),
         'request': self.request
     }
     c.update(generate_review_status_context(utc.last_instance))
     return template.render(c)
Example #15
0
 def get_review_status(self, tli):
     template = self.templates['review_status']
     c = Context({
         "instance": tli,
         "perms": PermWrapper(self.request.user),
         "request": self.request
     })
     c.update(generate_review_status_context(tli))
     return template.render(c)
Example #16
0
 def buttons(self):
     """
     A button to force DNS re-provisioning
     """
     context = {
         'perms': PermWrapper(self.context['request'].user),
     }
     context.update(csrf(self.context['request']))
     return self.render('netbox_ddns/ipaddress/dns_refresh_button.html', context)
Example #17
0
    def form_valid(self, form):
        data = dict()

        # Перед созданием нового документа проверяем наличия документов по заданным пользовательским параметрам
        if Document.objects.filter(category=self.kwargs.get('category'),
                                   tab=form.cleaned_data['tab'],
                                   del_field=False).exists():
            data['documents_exist'] = True
        else:
            data['documents_exist'] = False

        # Проверяем для какой вкладки был создан новый документ
        if str(form.cleaned_data['tab']) == str(self.kwargs.get('tab')):
            data['equal_tab'] = True
        else:
            data['equal_tab'] = False

        # Cоздание нового документа
        new_document = form.save(commit=False)
        new_document.category = self.kwargs.get('category')
        new_document.author_id = self.request.user.id
        if form.cleaned_data['src_url']:
            new_document.src = urlparse(form.cleaned_data['src_url']).path[1:]
        new_document.save()

        # HTML нового документа
        data['html_document'] = render_to_string(
            'documents/document.html',
            {
                'node': new_document,
                'perms': PermWrapper(self.request.user),
                'current_category': self.kwargs.get('category'),
                'current_tab': new_document.tab,
            },
            request=self.request,
        )

        # HTML списка вкладок
        data['html_tabs'] = render_to_string(
            'documents/tabs.html',
            {
                'tabs':
                list(
                    set(
                        Document.objects.filter(
                            category=self.kwargs.get('category'),
                            del_field=False).values_list('tab', flat=True))),
                'current_category':
                self.kwargs.get('category'),
            },
            request=self.request,
        )

        # Валидная форма
        data['form_is_valid'] = True

        return JsonResponse(data)
Example #18
0
 def get_last_instance_review_status(self, utc):
     template = self.templates['review_status']
     c = Context({
         "instance": utc.last_instance,
         "perms": PermWrapper(self.request.user),
         "request": self.request
     })
     c.update(generate_review_status_context(utc.last_instance))
     return template.render(c)
 def form_valid(self, form):
     edited_event = form.save(commit=False)
     edited_event.save()
     data = dict()
     data['event_id'] = edited_event.pk  # Инициализируем pk события
     # Загрузить изображения в указанную директорию
     directory = EVENT_IMAGE_STORAGE + 'events/' + str(
         edited_event.event_date.year) + '-' + edited_event.event_shortname
     images = self.request.FILES.getlist('image_field')
     for image in images:
         if not os.path.exists(directory):
             os.makedirs(directory)
         filename, expansion = image.name.split('.')
         if transliterate.detect_language(filename) == 'ru':
             if os.path.exists(
                     directory + '/' +
                     transliterate.translit(filename, reversed=True) + '.' +
                     expansion):
                 with open(
                         directory + '/' +
                         transliterate.translit(filename, reversed=True) +
                         str(uuid.uuid4().hex) + '.' + expansion,
                         'wb+') as destination:
                     for chunk in image.chunks():
                         destination.write(chunk)
             else:
                 with open(
                         directory + '/' +
                         transliterate.translit(filename, reversed=True) +
                         '.' + expansion, 'wb+') as destination:
                     for chunk in image.chunks():
                         destination.write(chunk)
         else:
             if os.path.exists(directory + '/' + image.name):
                 with open(
                         directory + '/' + filename +
                         str(uuid.uuid4().hex) + '.' + expansion,
                         'wb+') as destination:
                     for chunk in image.chunks():
                         destination.write(chunk)
             else:
                 with open(directory + '/' + image.name,
                           'wb+') as destination:
                     for chunk in image.chunks():
                         destination.write(chunk)
     # HTML редактируемого события
     data['html_event'] = render_to_string(
         'events/event.html', {
             'event': edited_event,
             'perms': PermWrapper(self.request.user),
             'current_language': self.kwargs.get('language'),
             'current_year': self.kwargs.get('year'),
         },
         request=self.request)
     data['form_is_valid'] = True
     return JsonResponse(data)
Example #20
0
 def actions(self, supplier):
     template = get_template('parts/table_context_suppliers_actions.html')
     mext = reverse('suppliers_list')
     c = {
         'supplier': supplier,
         'request': self.request,
         'next': mext,
         'perms': PermWrapper(self.request.user),
     }
     return template.render(c)
 def form_valid(self, form):
     form.save()
     data = dict()
     data['form_is_valid'] = True
     context = {
         'users': User.objects.order_by('username'),
         'perms': PermWrapper(self.request.user),
     }
     data['html_users'] = render_to_string('users/users.html', context)
     return JsonResponse(data)
 def test_permwrapper_in(self):
     """
     'something' in PermWrapper works as expected.
     """
     perms = PermWrapper(MockUser())
     # Works for modules and full permissions.
     self.assertIn("mockapp", perms)
     self.assertNotIn("nonexistent", perms)
     self.assertIn("mockapp.someperm", perms)
     self.assertNotIn("mockapp.nonexistent", perms)
Example #23
0
 def actions(self, utc):
     template = self.templates['actions']
     perms = PermWrapper(self.request.user)
     c = {
         'utc': utc,
         'request': self.request,
         'action': self.action,
         'perms': perms
     }
     return template.render(c)
 def test_permwrapper_in(self):
     """
     Test that 'something' in PermWrapper works as expected.
     """
     perms = PermWrapper(MockUser())
     # Works for modules and full permissions.
     self.assertIn('mockapp', perms)
     self.assertNotIn('nonexisting', perms)
     self.assertIn('mockapp.someperm', perms)
     self.assertNotIn('mockapp.nonexisting', perms)
 def post(self, request, *args, **kwargs):
     user = User.objects.get(pk=self.kwargs['pk'])
     user.delete()
     data = dict()
     data['form_is_valid'] = True
     context = {
         'users': User.objects.order_by('username'),
         'perms': PermWrapper(self.request.user),
     }
     data['html_users'] = render_to_string('users/users.html', context)
     return JsonResponse(data)
Example #26
0
 def review_status(self, tli):
     template = self.templates['review_status']
     c = {
         "instance": tli,
         "perms": PermWrapper(self.request.user),
         "request": self.request,
         "show_label": settings.ICON_SETTINGS['SHOW_REVIEW_LABELS_LISTING'],
         "show_icons": settings.ICON_SETTINGS['SHOW_STATUS_ICONS_REVIEW']
     }
     c.update(generate_review_status_context(tli))
     return template.render(c)
 def form_valid(self, form):
     form.save()
     section = FiniSection.objects.get(pk=self.kwargs['pk'])
     data = dict()
     data['section_id'] = section.id
     data['html_section_header'] = render_to_string(
         'indicators/section_header.html', {
             'section': section,
             'perms': PermWrapper(self.request.user),
         })
     data['form_is_valid'] = True
     return JsonResponse(data)
Example #28
0
    def test_template_complexity(self):
        tmpl = 'kanisa/management/users/_user_list.html'
        users = list(get_user_model().objects.all())
        user = get_user_model().objects.get(username='******')
        perms = PermWrapper(user)

        with self.assertNumQueries(0):
            render_to_string(tmpl, {
                'user_list': users,
                'user': user,
                'perms': perms
            })
Example #29
0
 def get(self, request, *args, **kwargs):
     question = FAQ.objects.get(pk=self.kwargs['pk'])
     data = dict()
     context = {
         'question': question,
         'current_language': self.kwargs.get('language'),
         'perms': PermWrapper(self.request.user),
     }
     data['html_form'] = render_to_string('faq/delete_faq.html',
                                          context,
                                          request=request)
     return JsonResponse(data)
 def form_valid(self, form):
     form.save()
     indicator = FiniCode.objects.get(pk=self.kwargs['pk'])
     data = dict()
     data['indicator_id'] = indicator.id
     data['html_indicator'] = render_to_string(
         'indicators/indicator.html', {
             'indicator': indicator,
             'perms': PermWrapper(self.request.user),
         })
     data['form_is_valid'] = True
     return JsonResponse(data)