def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Add the paginator on favourite courses of the user where he is student. # Prefix is “favourite”: so object are “favourite_has_obj…” context.update( PaginatorFactory.get_paginator_as_context( Course.objects.student_favourites_for(self.request.user), self.request.GET, prefix="favourite", nb_per_page=6)) # Add the paginator on courses where user is student. Prefix is “follow”: so object are “follow_has_obj…” context.update( PaginatorFactory.get_paginator_as_context( Course.objects.followed_by_without_favorites( self.request.user), self.request.GET, prefix="follow", nb_per_page=6)) # Execute the user query and add the paginator on query form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get("query", str()): context.update( PaginatorFactory.get_paginator_as_context( Course.objects.followed_by(self.request.user, query=form.cleaned_data.get( "query", str())).all(), self.request.GET, prefix="search")) # Add the query form in the view context["form"] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) reusable_resources = Resource.objects.exclude(activities=self.object).exclude( reuse=ResourceReuse.NON_REUSABLE.name).exclude( Q(reuse=ResourceReuse.ONLY_AUTHOR.name) & ~Q(author=self.request.user) # Resources that can be reused by their author ) # Suggestion for new activities context.update(PaginatorFactory.get_paginator_as_context( reusable_resources.all(), self.request.GET, prefix="suggested", nb_per_page=9) ) # User may query some words using the search filter form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get('query', str()): query = form.cleaned_data.get('query', str()) context.update(PaginatorFactory.get_paginator_as_context( reusable_resources.filter(Q(name__icontains=query) | Q(description__icontains=query)).all(), self.request.GET, prefix="search") ) # Add the query form to the view context['form'] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Add the paginator on courses where user is author context.update( PaginatorFactory.get_paginator_as_context( Course.objects.written_by(self.request.user), self.request.GET, prefix="author", nb_per_page=6)) # Add the paginator on courses where user is a collaborator context.update( PaginatorFactory.get_paginator_as_context( CourseCollaborator.objects.filter( collaborator=self.request.user), self.request.GET, prefix="contributor", nb_per_page=6)) # Execute the user query and add the paginator on query form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get('query', str()): context.update( PaginatorFactory.get_paginator_as_context( Course.objects.taught_by(self.request.user, query=form.cleaned_data.get( 'query', str())).all(), self.request.GET, prefix="search")) # Add the query form in the view context['form'] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Show the user some recommended courses, based on its profile queryset = None if self.request.user.is_authenticated: queryset = Course.objects.recommendations_for( self.request.user).all() context.update( PaginatorFactory.get_paginator_as_context(queryset, self.request.GET, prefix="recommended", nb_per_page=9)) # Show the user all public courses context.update( PaginatorFactory.get_paginator_as_context( Course.objects.public_without_followed_by_without_taught_by( self.request.user, self.request.user).all(), self.request.GET, prefix="public", nb_per_page=33)) # The search results context.update( SearchQuery.search_query_as_context(Course, self.request.GET)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # All available activities for new activities context.update( PaginatorFactory.get_paginator_as_context( Activity.objects.reusable(self.object, self.request.user), self.request.GET, prefix="reusable", nb_per_page=6)) # User may query some words using the search filter form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get("query", str()): query = form.cleaned_data.get("query", str()) context.update( PaginatorFactory.get_paginator_as_context( Activity.objects.reusable(self.object, self.request.user, query=query), self.request.GET, prefix="search", nb_per_page=6)) # Add the query form in the view context["form"] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data() if self.request.user.is_authenticated: context.update( PaginatorFactory.get_paginator_as_context( Course.objects.followed_by(self.request.user).all(), self.request.GET, nb_per_page=6)) else: context.update( PaginatorFactory.get_paginator_as_context( Course.objects.public().all(), self.request.GET, nb_per_page=6)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Courses where this activity is used context.update(PaginatorFactory.get_paginator_as_context( self.object.course_activities.all(), self.request.GET, nb_per_page=10) ) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Add the current course activity into the context if "activity_slug" in self.kwargs.keys(): course_activity = get_object_or_404( CourseActivity, activity__slug=self.kwargs.get("activity_slug"), course=self.object) else: course_activity = self.object.course_activities.first() context["current_course_activity"] = course_activity context[ "current_course_activity_objective"] = PaginatorFactory.get_paginator_as_context( ActivityObjective.objects.filter( activity=course_activity.activity).order_by( "created").reverse(), self.request.GET, nb_per_page=6) if self.request.user != self.object.author: context["auth_user"] = self.request.user # Add previous and next activities in the context context["next_course_activity"] = CourseActivity.objects.filter( course=self.object, rank=course_activity.rank + 1).first() context["previous_course_activity"] = CourseActivity.objects.filter( course=self.object, rank=course_activity.rank - 1).first() return context
def get_context_data(self, **kwargs): context = super().get_context_data() context["objectives"] = PaginatorFactory.get_paginator_as_context( ResourceObjective.objects.filter( resource=self.object).order_by("created").reverse(), self.request.GET, nb_per_page=6) context[ "user_is_teacher_non_editor"] = ResourceCollaborator.objects.filter( collaborator=self.request.user, resource=self.object, role=CollaboratorRole.NON_EDITOR_TEACHER.name).exists() context[ "user_is_teacher_editor"] = ResourceCollaborator.objects.filter( collaborator=self.request.user, resource=self.object, role=CollaboratorRole.TEACHER.name).exists() context[ "user_contribute"] = self.request.user in self.object.collaborators.all( ) context[ "user_is_author_of_object"] = self.request.user == self.object.author if self.request.user != self.object.author: context["auth_user"] = self.request.user return context
def get_context_data(self, **kwargs): context = super().get_context_data() if self.request.user.is_authenticated: # here the objective that user gained first context.update( PaginatorFactory.get_paginator_as_context( Objective.objects.all().order_by("created"), self.request.GET, nb_per_page=6)) else: # here all the objectives context.update( PaginatorFactory.get_paginator_as_context( Objective.objects.all().order_by("created"), self.request.GET, nb_per_page=6)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update( PaginatorFactory.get_paginator_as_context( self.object.course_collaborators.order_by("role"), self.request.GET, nb_per_page=10)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update( PaginatorFactory.get_paginator_as_context( self.object.registrations.order_by( 'student__last_login').all(), self.request.GET, nb_per_page=10)) return context
def get_context_data(self, **kwargs): context = super().get_context_data() context.update( PaginatorFactory.get_paginator_as_context( ResourceObjective.objects.filter( resource=self.object).order_by("created").reverse(), self.request.GET, nb_per_page=6)) return context
def get_context_data(self, **kwargs): context = super().get_context_data() # Add the paginator on favourite resources of the user. # Prefix is “favourite”: so object are “favourite_has_obj…” context.update( PaginatorFactory.get_paginator_as_context( Resource.objects.teacher_favourites_for(self.request.user), self.request.GET, prefix="favourite", nb_per_page=6)) # Add the paginator on resources where user is author context.update( PaginatorFactory.get_paginator_as_context( Resource.objects.written_by(self.request.user), self.request.GET, prefix="author", nb_per_page=6)) # Add the paginator on resources where user is a collaborator # FIXME: this should exclude favourite courses where the user contribute context.update( PaginatorFactory.get_paginator_as_context( ResourceCollaborator.objects.filter( collaborator=self.request.user), self.request.GET, prefix="contributor", nb_per_page=6)) # Execute the user query and add the paginator on query form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get("query", str()): context.update( PaginatorFactory.get_paginator_as_context( Resource.objects.taught_by(self.request.user, query=form.cleaned_data.get( "query", str())), self.request.GET, prefix="search")) # Add the query form in the view context["form"] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data() context.update( PaginatorFactory.get_paginator_as_context([ course for course in Course.objects.all() if self.object in course.get_all_objectives() ], self.request.GET, nb_per_page=6)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update( PaginatorFactory.get_paginator_as_context( self.object.object_collaborators.order_by( 'collaborator__first_name'), self.request.GET, nb_per_page=10)) context[ 'number_collaborator'] = self.object.object_collaborators.count() return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Activities by the logged-on user context.update( PaginatorFactory.get_paginator_as_context( Activity.objects.filter(author=self.request.user).all(), self.request.GET, prefix="activities", nb_per_page=9 ) ) # Resources that match the query context.update(SearchQuery.search_query_as_context(Activity, self.request.GET)) return context
def get_context_data(self, **kwargs): context = super().get_context_data() context.update( PaginatorFactory.get_paginator_as_context( CourseObjective.objects.filter( course=self.object).order_by("created").reverse(), self.request.GET, nb_per_page=6)) if self.request.user.is_authenticated: if self.request.user != self.object.author: context["auth_user"] = self.request.user return context
def get_context_data(self, **kwargs): context = super().get_context_data() context["activity"] = self.activity context["resource"] = self.resource context["activity"] = self.activity context["resource"] = self.resource context[ "current_course_activity_resource_objective"] = PaginatorFactory.get_paginator_as_context( ResourceObjective.objects.filter( resource=self.resource).order_by("created").reverse(), self.request.GET, nb_per_page=6) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) basic_queryset = Activity.objects.exclude( # activities already linked with the course course_activities__course=self.object ).exclude( # activities that are not reusable reuse=ActivityReuse.NON_REUSABLE.name, ).exclude( # activities that can only be reused by their respective authors Q(reuse=ActivityReuse.ONLY_AUTHOR.name) & ~Q(author=self.object.author)) # Suggestion for new activities context.update( PaginatorFactory.get_paginator_as_context(basic_queryset.all(), self.request.GET, prefix="suggested", nb_per_page=6)) # User may query some words using the search filter form = BasicSearchForm(data=self.request.GET) if form.is_valid() and form.cleaned_data.get('query', str()): query = form.cleaned_data.get('query', str()) context.update( PaginatorFactory.get_paginator_as_context( basic_queryset.filter( Q(name__icontains=query) | Q(description__icontains=query)).all(), self.request.GET, prefix="search", nb_per_page=6)) # Add the query form in the view context['form'] = form return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # noinspection PyBroadException try: similar_list = [ similar for similar in self.object.tags.similar_objects() if isinstance(similar, Activity) and similar.user_can_view(self.request.user) ] context.update(PaginatorFactory.get_paginator_as_context(similar_list, self.request.GET, nb_per_page=9)) # django-taggit similar tags can have weird behaviour sometimes: https://github.com/jazzband/django-taggit/issues/80 except Exception: messages.error( self.request, _("The component used to detect similar activities crashed. We try to fix this as soon as possible.") ) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # Show the user some recommended courses, based on its profile if self.request.user.is_anonymous: queryset = Course.objects.all() else: queryset = Course.objects.recommendations_for( self.request.user).all() context.update( PaginatorFactory.get_paginator_as_context(queryset, self.request.GET, prefix="recommended", nb_per_page=9)) context.update( SearchQuery.search_query_as_context(Course, self.request.GET)) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["user_can_register"] = self.__user_can_register() # Add user specific elements in the context context["user_can_register"] = self.__user_can_register() context["objectives"] = PaginatorFactory.get_paginator_as_context( CourseObjective.objects.filter( course=self.object).order_by("created").reverse(), self.request.GET, nb_per_page=6) if self.request.user.is_authenticated: if self.request.user in self.object.collaborators.all(): context["contribution"] = CourseCollaborator.objects \ .get(collaborator=self.request.user, course=self.object) registration = self.object.registrations.filter( student=self.request.user) context["user_is_student"] = registration.exists() if context.get("user_is_student", False): context["registration"] = registration.get() context["user_is_teacher"] = self.__user_is_teacher() context[ "user_is_teacher_non_editor"] = CourseCollaborator.objects.filter( collaborator=self.request.user, course=self.object, role=CollaboratorRole.NON_EDITOR_TEACHER.name).exists() context[ "user_is_teacher_editor"] = CourseCollaborator.objects.filter( collaborator=self.request.user, course=self.object, role=CollaboratorRole.TEACHER.name).exists() context[ "user_contribute"] = self.request.user in self.object.collaborators.all( ) context[ "user_is_author_of_object"] = self.request.user == self.object.author if self.request.user != self.object.author: context["auth_user"] = self.request.user return context