def get_queryset(self): tags = self.request.GET.get('search') self.tags = tags tags = tags.split(" ") q = Q() for tag in tags: for word in tag.split(' '): q = q | Q(tags__name__unaccent__iexact=word) subjects = Subject.objects.filter(q).distinct() self.resources = Resource.objects.select_related('link', 'filelink', 'webpage', 'ytvideo', 'pdffile')\ .filter(q).distinct() self.resources = [resource.id for resource in self.resources if has_resource_permissions(self.request.user, resource)] self.resources = Resource.objects.select_related('link', 'filelink', 'webpage', 'ytvideo', 'pdffile')\ .filter(id__in=self.resources) self.totals = {'resources_count': self.resources.count(), 'subjects_count': subjects.count()} option = self.kwargs.get('option') if option and option == 'resources': return self.resources return subjects
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get("slug", "") youtube = get_object_or_404(YTVideo, slug=slug) if not has_resource_permissions(request.user, youtube): return redirect(reverse_lazy("subjects:home")) return super(NewWindowView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') webpage = get_object_or_404(Webpage, slug=slug) if not has_resource_permissions(request.user, webpage): return redirect(reverse_lazy('subjects:home')) return super(NewWindowView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get("slug", "") bulletin = get_object_or_404(Bulletin, slug=slug) if not has_resource_permissions(request.user, bulletin): return redirect(reverse_lazy("subjects:home")) return super(InsideView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') bulletin = get_object_or_404(Bulletin, slug=slug) if not has_resource_permissions(request.user, bulletin): return redirect(reverse_lazy('subjects:home')) return super(InsideView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') file_link = get_object_or_404(FileLink, slug = slug) if not has_resource_permissions(request.user, file_link): return redirect(reverse_lazy('subjects:home')) return super(DownloadFile, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') conference = get_object_or_404(Webconference, slug = slug) if not has_resource_permissions(request.user, conference): return redirect(reverse_lazy('subjects:home')) return super(Conference, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') youtube = get_object_or_404(YTVideo, slug = slug) if not has_resource_permissions(request.user, youtube): return redirect(reverse_lazy('subjects:home')) return super(InsideView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') bulletin = get_object_or_404(Bulletin, slug=slug) if not has_resource_permissions(request.user, bulletin): return redirect(reverse_lazy('subjects:home')) return super(NewWindowView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get("slug", "") file_link = get_object_or_404(FileLink, slug=slug) if not has_resource_permissions(request.user, file_link): return redirect(reverse_lazy("subjects:home")) return super(DownloadFile, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') resource = get_object_or_404(Resource, slug = slug) topic = resource.topic if not has_subject_permissions(request.user, topic.subject) and not has_resource_permissions(request.user, resource): return redirect(reverse_lazy('subjects:home')) return super(ViewPDFFile, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get("slug", "") resource = get_object_or_404(Resource, slug=slug) topic = resource.topic if not has_subject_permissions( request.user, topic.subject) and not has_resource_permissions( request.user, resource): return redirect(reverse_lazy("subjects:home")) return super(ViewPDFFile, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') goals = get_object_or_404(Goals, slug = slug) if not has_resource_permissions(request.user, goals): return redirect(reverse_lazy('subjects:home')) if goals.limit_submission_date < timezone.now(): messages.error(self.request, _('The date limit to submit your Goals specification for the topic %s has passed, so you can\'t edit your values!')%(goals.topic.name)) return redirect(reverse_lazy('goals:view', kwargs = {'slug': slug})) return super(UpdateSubmit, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): pk = self.kwargs.get("deliver", 0) deliver = get_object_or_404(StudentDeliver, pk=pk) if not has_resource_permissions(request.user, deliver.delivery): return JsonResponse({ "status": 403, "message": _("You don't have permission to evaluate this delivery") }) return super(TeacherEvaluate, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') questionary = get_object_or_404(Questionary, slug = slug) if not has_resource_permissions(request.user, questionary): return redirect(reverse_lazy('subjects:home')) if not has_subject_permissions(self.request.user, questionary.topic.subject): if timezone.now() < questionary.data_ini: messages.error(self.request, _('The questionary "%s" from topic "%s" can only be answered after %s'%(str(questionary), str(questionary.topic), (formats.date_format(questionary.data_ini, "SHORT_DATETIME_FORMAT"))))) return redirect(reverse_lazy('subjects:view', kwargs={"slug": questionary.topic.subject.slug})) return super(InsideView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): slug = self.kwargs.get('slug', '') goals = get_object_or_404(Goals, slug = slug) if not has_resource_permissions(request.user, goals): return redirect(reverse_lazy('subjects:home')) if has_subject_permissions(request.user, goals.topic.subject): return redirect(reverse_lazy('goals:view', kwargs = {'slug': goals.slug})) if MyGoals.objects.filter(item__goal = goals, user = request.user).exists(): return redirect(reverse_lazy('goals:view', args = (), kwargs = {'slug': slug})) return super(SubmitView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): pk = self.kwargs.get("deliver", 0) deliver = get_object_or_404(StudentDeliver, pk=pk) if not has_resource_permissions(request.user, deliver.delivery): return JsonResponse({ "status": 403, "message": _("You don't have permission to submit files in this delivery") }) todaysDate = timezone.localtime(timezone.now()) if timezone.localtime(deliver.delivery.data_ini) > todaysDate: return JsonResponse({ "status": 500, "message": _("This resource can only be accessed after %s" % (formats.date_format( timezone.localtime(deliver.delivery.data_ini), "SHORT_DATETIME_FORMAT"))) }) elif timezone.localtime(deliver.delivery.data_end) < todaysDate: return JsonResponse({ "status": 500, "message": _("The material could be delivered only until %s" % (formats.date_format( timezone.localtime(deliver.delivery.data_end), "SHORT_DATETIME_FORMAT"))) }) return super(StudentMaterialCreate, self).dispatch(request, *args, **kwargs)
def resource_permissions(user, resource): return permissions.has_resource_permissions(user, resource)
def resource_permissions(user, resource): return permissions.has_resource_permissions(user, resource)