def test_delete_spam_course(self): course = course_model.create_course( **{ "title": "A test course", "hashtag": "ATC-1", "description": "This course is all about ABC", "language": "en", "organizer_uri": '/uri/user/testuser' }) course_model.delete_spam_course(course['uri']) with self.assertRaises(course_model.ResourceDeletedException): course_model.get_course(course['uri'])
def test_delete_spam_course(self): course = course_model.create_course( **{ "title": "A test course", "hashtag": "ATC-1", "description": "This course is all about ABC", "language": "en", "organizer_uri": '/uri/user/testuser' } ) course_model.delete_spam_course(course['uri']) with self.assertRaises(course_model.ResourceDeletedException): course_model.get_course(course['uri'])
def test_spam_course_deletion(self): course = course_model.create_course( **{ "title": "A spam course", "hashtag": "ASC", "description": "This course is all about ABC", "language": "en", "organizer_uri": '/uri/user/spammer' }) self.assertEqual(course_model.get_course(course['uri']), course) spam_model.handle_spam_user('spammer') with self.assertRaises(course_model.ResourceDeletedException): course_model.get_course(course['uri'])
def _get_course_or_404( course_uri ): try: course = course_model.get_course(course_uri) except: # TODO: this masks all exceptions that may happen in get_course! raise http.Http404 return course
def get_stats(): course_list = [ 632, 667, 620, 5, 77, 588, 140, 3 ] stats = [] for course_id in course_list: course = course_model.get_course('/uri/course/{0}'.format(course_id)) for content in course['content']: ident = '{0}-{1}'.format(course_id, content['id']) thread = utils.get_thread(ident) stats += [ (course['title'], content['title'], thread['response']['posts'] ) ] print('https://p2pu.org/en/courses/{0}, "{1}", {2}'.format(course_id, content['title'], thread['response']['posts'])) old_course_list = [ 'get-cc-savvy', 'teach-someone-something-with-open-content', 'teach-someone-something-with-open-content-part-2', 'open-detective', 'contributing-to-wikimedia-commons', 'open-glam', 'a-look-at-open-video', 'make-something-with-the-daily-create', 'dscribe-peer-produced-open-educational-resources', 'open-access-wikipedia-challenge' ] for course_slug in old_course_list: project = Project.objects.get(slug=course_slug) for page in project.pages.filter(deleted=False, listed=True): stats += [ ('https://p2pu.org/en/groups/{0}'.format(course_slug), page.title, page.comments.count()) ] print('https://p2pu.org/en/groups/{0}, "{1}", {2}'.format(course_slug, page.title, page.comments.count())) return stats
def test_spam_course_deletion(self): course = course_model.create_course( **{ "title": "A spam course", "hashtag": "ASC", "description": "This course is all about ABC", "language": "en", "organizer_uri": "/uri/user/spammer", } ) self.assertEqual(course_model.get_course(course["uri"]), course) spam_model.handle_spam_user("spammer") with self.assertRaises(course_model.ResourceDeletedException): course_model.get_course(course["uri"])
def _get_course_or_404( course_uri ): try: course = course_model.get_course(course_uri) #except course_model.ResourceDeletedException: # raise http. except: # TODO: this masks all exceptions that may happen in get_course! raise http.Http404 return course
def test_course_get(self): course = course_model.get_course(self.course['uri']) self.assertTrue('id' in course) self.assertTrue('uri' in course) self.assertTrue('title' in course) self.assertTrue('hashtag' in course) self.assertTrue('slug' in course) self.assertTrue('description' in course) self.assertTrue('language' in course) self.assertTrue('date_created' in course) self.assertTrue('author_uri' in course) self.assertTrue('status' in course) self.assertTrue('about_uri' in course) self.assertTrue('content' in course)
def test_course_get(self): course = course_model.get_course(self.course["uri"]) self.assertTrue("id" in course) self.assertTrue("uri" in course) self.assertTrue("title" in course) self.assertTrue("hashtag" in course) self.assertTrue("slug" in course) self.assertTrue("description" in course) self.assertTrue("language" in course) self.assertTrue("date_created" in course) self.assertTrue("author_uri" in course) self.assertTrue("status" in course) self.assertTrue("about_uri" in course) self.assertTrue("content" in course)
def test_course_get(self): course = course_model.get_course(self.course['uri']) self.assertTrue('id' in course) self.assertTrue('uri' in course) self.assertTrue('title' in course) self.assertTrue('hashtag' in course) self.assertTrue('about_uri' in course) self.assertTrue('slug' in course) self.assertTrue('description' in course) self.assertTrue('language' in course) self.assertTrue('draft' in course) self.assertTrue('archived' in course) self.assertTrue('about_uri' in course) self.assertTrue('content' in course)
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 _get_course_or_404( course_uri ): try: course = course_model.get_course(course_uri) except: raise http.Http404 return course
def get_stats(): #course_list = [ 632, 667, 620, 5, 77, 588, 140, 3 ] course_list = [1275, 1196, 1283, 3, 2178, 140] stats = [] with open('soo-comments.csv', 'w') as f: writer = unicodecsv.writer(f, encoding='utf-8') for course_id in course_list: course = course_model.get_course('/uri/course/{0}'.format(course_id)) for content in course['content']: ident = '{0}-{1}'.format(course_id, content['id']) thread = utils.get_thread_posts(ident) for post in thread['response']: print(u'https://courses.p2pu.org/en/courses/{0}/, "{1}", {2} "{3}"'.format(course_id, content['title'], post['author']['url'], post['message'])) writer.writerow([ u'https://courses.p2pu.org/en/courses/{0}/'.format(course_id), content['title'], post['author']['url'], post['message'] ]) #stats += [ (course_id, content['title'], thread['response']['posts']) ] #print('https://courses.p2pu.org/en/courses/{0}, "{1}", {2}'.format(course_id, content['title'], thread['response']['posts'])) #old_course_list = [ # 'get-cc-savvy', # 'teach-someone-something-with-open-content', # 'teach-someone-something-with-open-content-part-2', # 'open-detective', # 'contributing-to-wikimedia-commons', # 'open-glam', # 'a-look-at-open-video', # 'make-something-with-the-daily-create', # 'dscribe-peer-produced-open-educational-resources', # 'open-access-wikipedia-challenge' #] old_course_list = [ 'a-look-at-open-video', 'contributing-to-wikimedia-commons', 'dscribe-peer-produced-open-educational-resources', 'get-cc-savvy', 'open-access-wikipedia-challenge', 'open-glam', 'open-detective', 'make-something-with-the-daily-create', 'teach-someone-something-with-open-content', 'teach-someone-something-with-open-content-part-2' ] for course_slug in old_course_list: project = Project.objects.get(slug=course_slug) for page in project.pages.filter(deleted=False, listed=True): stats += [ ('https://courses.p2pu.org/en/groups/{0}/'.format(course_slug), page.title, page.comments.count()) ] for comment in page.comments.all(): print(u'https://courses.p2pu.org/en/groups/{0}/, "{1}", "{2}", "{3}"'.format(course_slug, page.title, comment.author.username, comment.content)) writer.writerow([ u'https://courses.p2pu.org/en/groups/{0}/'.format(course_slug), page.title, comment.author.username, comment.content ]) #print('https://courses.p2pu.org/en/groups/{0}/, "{1}", {2}'.format(course_slug, page.title, page.comments.count())) return stats
def get_stats(): course_list = [632, 667, 620, 5, 77, 588, 140, 3] course_list = [] stats = [] with open("soo-comments.csv", "w") as f: writer = unicodecsv.writer(f, encoding="utf-8") for course_id in course_list: course = course_model.get_course("/uri/course/{0}".format(course_id)) for content in course["content"]: ident = "{0}-{1}".format(course_id, content["id"]) thread = utils.get_thread_posts(ident) for post in thread["response"]: print( u'https://p2pu.org/en/courses/{0}/, "{1}", {2} "{3}"'.format( course_id, content["title"], post["author"]["url"], post["message"] ) ) writer.writerow( [ u"https://p2pu.org/en/courses/{0}/".format(course_id), content["title"], post["author"]["url"], post["message"], ] ) # stats += [ (course_id, content['title'], thread['response']['posts']) ] # print('https://p2pu.org/en/courses/{0}, "{1}", {2}'.format(course_id, content['title'], thread['response']['posts'])) old_course_list = [ "get-cc-savvy", "teach-someone-something-with-open-content", "teach-someone-something-with-open-content-part-2", "open-detective", "contributing-to-wikimedia-commons", "open-glam", "a-look-at-open-video", "make-something-with-the-daily-create", "dscribe-peer-produced-open-educational-resources", "open-access-wikipedia-challenge", ] for course_slug in old_course_list: project = Project.objects.get(slug=course_slug) for page in project.pages.filter(deleted=False, listed=True): stats += [("https://p2pu.org/en/groups/{0}/".format(course_slug), page.title, page.comments.count())] for comment in page.comments.all(): print( u'https://p2pu.org/en/groups/{0}/, "{1}", "{2}", "{3}"'.format( course_slug, page.title, comment.author.username, comment.content ) ) writer.writerow( [ u"https://p2pu.org/en/groups/{0}/".format(course_slug), page.title, comment.author.username, comment.content, ] ) # print('https://p2pu.org/en/groups/{0}/, "{1}", {2}'.format(course_slug, page.title, page.comments.count())) return stats
def get_stats(): #course_list = [ 632, 667, 620, 5, 77, 588, 140, 3 ] course_list = [1275, 1196, 1283, 3, 2178, 140] stats = [] with open('soo-comments.csv', 'w') as f: writer = unicodecsv.writer(f, encoding='utf-8') for course_id in course_list: course = course_model.get_course( '/uri/course/{0}'.format(course_id)) for content in course['content']: ident = '{0}-{1}'.format(course_id, content['id']) thread = utils.get_thread_posts(ident) for post in thread['response']: print( u'https://courses.p2pu.org/en/courses/{0}/, "{1}", {2} "{3}"' .format(course_id, content['title'], post['author']['url'], post['message'])) writer.writerow([ u'https://courses.p2pu.org/en/courses/{0}/'.format( course_id), content['title'], post['author']['url'], post['message'] ]) #stats += [ (course_id, content['title'], thread['response']['posts']) ] #print('https://courses.p2pu.org/en/courses/{0}, "{1}", {2}'.format(course_id, content['title'], thread['response']['posts'])) #old_course_list = [ # 'get-cc-savvy', # 'teach-someone-something-with-open-content', # 'teach-someone-something-with-open-content-part-2', # 'open-detective', # 'contributing-to-wikimedia-commons', # 'open-glam', # 'a-look-at-open-video', # 'make-something-with-the-daily-create', # 'dscribe-peer-produced-open-educational-resources', # 'open-access-wikipedia-challenge' #] old_course_list = [ 'a-look-at-open-video', 'contributing-to-wikimedia-commons', 'dscribe-peer-produced-open-educational-resources', 'get-cc-savvy', 'open-access-wikipedia-challenge', 'open-glam', 'open-detective', 'make-something-with-the-daily-create', 'teach-someone-something-with-open-content', 'teach-someone-something-with-open-content-part-2' ] for course_slug in old_course_list: project = Project.objects.get(slug=course_slug) for page in project.pages.filter(deleted=False, listed=True): stats += [('https://courses.p2pu.org/en/groups/{0}/'.format( course_slug), page.title, page.comments.count())] for comment in page.comments.all(): print( u'https://courses.p2pu.org/en/groups/{0}/, "{1}", "{2}", "{3}"' .format(course_slug, page.title, comment.author.username, comment.content)) writer.writerow([ u'https://courses.p2pu.org/en/groups/{0}/'.format( course_slug), page.title, comment.author.username, comment.content ]) #print('https://courses.p2pu.org/en/groups/{0}/, "{1}", {2}'.format(course_slug, page.title, page.comments.count())) return stats