예제 #1
0
    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
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
	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)
예제 #7
0
    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)
예제 #8
0
	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)
예제 #9
0
파일: views.py 프로젝트: gpkc/amadeuslms
    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)
예제 #10
0
    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)
예제 #11
0
    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)
예제 #12
0
    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)
예제 #13
0
    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)
예제 #14
0
    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)
예제 #15
0
    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)
예제 #16
0
    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)
예제 #17
0
    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)
예제 #18
0
def resource_permissions(user, resource):
    return permissions.has_resource_permissions(user, resource)
예제 #19
0
def resource_permissions(user, resource):
	return permissions.has_resource_permissions(user, resource)