def update_learn_api(self): if not self.pk: return try: learn_model.update_course_listing(**self.get_learn_api_data()) except: learn_model.add_course_listing(**self.get_learn_api_data()) course_url = reverse('projects_show', kwargs={'slug': self.slug}) course_lists = learn_model.get_lists_for_course(course_url) list_names = [ l['name'] for l in course_lists ] if self.not_listed or self.test: for list_name in list_names: learn_model.remove_course_from_list(course_url, list_name) else: desired_list = 'drafts' if not (self.under_development or self.archived): desired_list = 'listed' elif self.archived: desired_list = 'archived' possible_lists = ['drafts', 'listed', 'archived'] possible_lists.remove(desired_list) for l in possible_lists: if l in list_names: learn_model.remove_course_from_list(course_url, l) if desired_list not in list_names: learn_model.add_course_to_list(course_url, desired_list)
def update_learn_api(self): if not self.pk: return try: learn_model.update_course_listing(**self.get_learn_api_data()) except: learn_model.add_course_listing(**self.get_learn_api_data()) course_url = reverse("projects_show", kwargs={"slug": self.slug}) course_lists = learn_model.get_lists_for_course(course_url) list_names = [l["name"] for l in course_lists] if self.not_listed or self.test: for list_name in list_names: learn_model.remove_course_from_list(course_url, list_name) else: desired_list = "drafts" if not (self.under_development or self.archived): desired_list = "listed" elif self.archived: desired_list = "archived" possible_lists = ["drafts", "listed", "archived"] possible_lists.remove(desired_list) for l in possible_lists: if l in list_names: learn_model.remove_course_from_list(course_url, l) if desired_list not in list_names: learn_model.add_course_to_list(course_url, desired_list)
def _populate_course_context( request, course_id, context ): course_uri = course_model.course_id2uri(course_id) course = _get_course_or_404(course_uri) course['author'] = course['author_uri'].strip('/').split('/')[-1] context['course'] = course context['course_url'] = reverse('courses_show', kwargs={'course_id': course['id'], 'slug': course['slug']} ) if 'image_uri' in course: context['course']['image'] = media_model.get_image(course['image_uri']) #NOTE if performance becomes a problem dont fetch cohort cohort = course_model.get_course_cohort(course_uri) context['cohort'] = cohort user_uri = u"/uri/user/{0}".format(request.user.username) context['organizer'] = course_model.is_cohort_organizer( user_uri, cohort['uri'] ) context['organizer'] |= request.user.is_superuser context['admin'] = request.user.is_superuser context['can_edit'] = context['organizer'] and not course['status'] == 'archived' context['trusted_user'] = request.user.has_perm('users.trusted_user') if course_model.user_in_cohort(user_uri, cohort['uri']): if not context['organizer']: context['show_leave_course'] = True context['learner'] = True elif cohort['signup'] == "OPEN": context['show_signup'] = True try: course_lists = learn_model.get_lists_for_course(reverse( 'courses_slug_redirect', kwargs={'course_id': course_id} )) f = lambda l: l['name'] not in ['drafts', 'listed', 'archived'] context['lists'] = filter(f, course_lists) except: log.error("Could not get lists for course!") if 'based_on_uri' in course: course['based_on'] = course_model.get_course(course['based_on_uri']) context['meta_data'] = lrmi_model.get_tags(course_uri) if 'educational_alignment' in context['meta_data']: context['educational_alignment'] = json.loads(context['meta_data']['educational_alignment']) del context['meta_data']['educational_alignment'] return context
def delete_spam_course(course_uri): """ Delete a course and remove listing from index """ # TODO - this doesn't do anything special for spam, maybe rename the function course_id = course_uri2id(course_uri) course_db = db.Course.objects.get(id=course_id) course_db.deleted = True course_db.save() # remove the course listing course_url = reverse('courses_slug_redirect', kwargs={'course_id': course_db.id}) try: lists = learn_model.get_lists_for_course(course_url) for course_list in lists: learn_model.remove_course_from_list(course_url, course_list['name']) learn_model.remove_course_listing(course_url) except: pass
def delete_spam_course(course_uri): """ Delete a course and remove listing from index """ # TODO - this doesn't do anything special for spam, maybe rename the function course_id = course_uri2id(course_uri) course_db = db.Course.objects.get(id=course_id) course_db.deleted = True course_db.save() # remove the course listing course_url = reverse( 'courses_slug_redirect', kwargs={'course_id': course_db.id} ) try: lists = learn_model.get_lists_for_course(course_url) for course_list in lists: learn_model.remove_course_from_list(course_url, course_list['name']) learn_model.remove_course_listing(course_url) except: pass