def student_view(self, context): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default_escaped, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'content_html': self.content, 'token': retrieve_token(self.user_email, self.annotation_token_secret), 'annotation_storage': self.annotation_storage_url, 'default_tab': self.default_tab, 'instructor_email': self.instructor_email, 'annotation_mode': self.annotation_mode, 'is_course_staff': self.is_course_staff, } fragment = Fragment( self.system.render_template('videoannotation.html', context)) # TinyMCE already exists in Studio so we should not load the files again # get_real_user always returns "None" in Studio since its runtimes contains no anonymous ids if self.runtime.get_real_user is not None: fragment.add_javascript_url( self.runtime.STATIC_URL + "js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url( self.runtime.STATIC_URL + "js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def student_view(self, context): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'content_html': self.content, 'token': retrieve_token(self.user_email, self.annotation_token_secret), 'annotation_storage': self.annotation_storage_url, 'default_tab': self.default_tab, 'instructor_email': self.instructor_email, 'annotation_mode': self.annotation_mode, } fragment = Fragment( self.system.render_template('videoannotation.html', context)) fragment.add_javascript_url( "/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url( "/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def student_view(self, context): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default_escaped, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'content_html': self.content, 'token': retrieve_token(self.user_email, self.annotation_token_secret), 'annotation_storage': self.annotation_storage_url, 'default_tab': self.default_tab, 'instructor_email': self.instructor_email, 'annotation_mode': self.annotation_mode, 'is_course_staff': self.is_course_staff, } fragment = Fragment(self.system.render_template('videoannotation.html', context)) # TinyMCE already exists in Studio so we should not load the files again # get_real_user always returns "None" in Studio since its runtimes contains no anonymous ids if self.runtime.get_real_user is not None: fragment.add_javascript_url(self.runtime.STATIC_URL + "js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url(self.runtime.STATIC_URL + "js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def test_token(self): """ Test for the token generator. Give an a random username and secret token, it should create the properly encoded string of text. """ expected = "eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJpc3N1ZWRBdCI6ICIyMDE0LTAyLTI3VDE3OjAwOjQyLjQwNjQ0MSswOjAwIiwgImNvbnN1bWVyS2V5IjogImZha2Vfc2VjcmV0IiwgInVzZXJJZCI6ICJ1c2VybmFtZSIsICJ0dGwiOiA4NjQwMH0.Dx1PoF-7mqBOOSGDMZ9R_s3oaaLRPnn6CJgGGF2A5CQ" response = retrieve_token("username", "fake_secret") self.assertEqual(expected.split('.')[0], response.split('.')[0]) self.assertNotEqual(expected.split('.')[2], response.split('.')[2])
def get_html(self): """ Renders parameters to template. """ context = { 'display_name': self.display_name_with_default, 'tag': self.instructor_tags, 'source': self.source, 'instructions_html': self.instructions, 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user_email, self.annotation_token_secret), } return self.system.render_template('textannotation.html', context)
def get_html(self): """ Renders parameters to template. """ context = { 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user, self.annotation_token_secret), 'tag': self.instructor_tags, 'openseadragonjson': self.openseadragonjson, } return self.system.render_template('imageannotation.html', context)
def student_view(self, context): """ Renders parameters to template. """ context = { 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user, self.annotation_token_secret), 'tag': self.instructor_tags, 'openseadragonjson': self.openseadragonjson, } fragment = Fragment(self.system.render_template('imageannotation.html', context)) fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def get_html(self): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user, self.annotation_token_secret), } return self.system.render_template('videoannotation.html', context)
def get_html(self): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { "display_name": self.display_name_with_default, "instructions_html": self.instructions, "sourceUrl": self.sourceurl, "typeSource": extension, "poster": self.poster_url, "content_html": self.content, "annotation_storage": self.annotation_storage_url, "token": retrieve_token(self.user_email, self.annotation_token_secret), } return self.system.render_template("videoannotation.html", context)
def student_view(self, context): """ Renders parameters to template. """ context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default, 'tag': self.instructor_tags, 'source': self.source, 'instructions_html': self.instructions, 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user_email, self.annotation_token_secret), } fragment = Fragment(self.system.render_template('textannotation.html', context)) fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def get_html(self): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user_email, self.annotation_token_secret), } return self.system.render_template('videoannotation.html', context)
def student_view(self, context): """ Renders parameters to template. """ context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default, 'tag': self.instructor_tags, 'source': self.source, 'instructions_html': self.instructions, 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user_email, self.annotation_token_secret), 'diacritic_marks': self.diacritics, } fragment = Fragment(self.system.render_template('textannotation.html', context)) fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def html_index(request, course_id, book_index, chapter=None): """ Display an HTML textbook. course_id: course for which to display text. The course should have "html_textbooks" property defined. book index: zero-based index of which HTML textbook to display. chapter: (optional) one-based index into the chapter array of textbook HTML files to display. Defaults to first chapter. Specifying this assumes that there are separate HTML files for each chapter in a textbook. """ course_key = SlashSeparatedCourseKey.from_deprecated_string(course_id) course = get_course_with_access(request.user, 'load', course_key) staff_access = bool(has_access(request.user, 'staff', course)) notes_enabled = notes_enabled_for_course(course) book_index = int(book_index) if book_index < 0 or book_index >= len(course.html_textbooks): raise Http404("Invalid book index value: {0}".format(book_index)) textbook = course.html_textbooks[book_index] if 'url' in textbook: textbook['url'] = remap_static_url(textbook['url'], course) # then remap all the chapter URLs as well, if they are provided. if 'chapters' in textbook: for entry in textbook['chapters']: entry['url'] = remap_static_url(entry['url'], course) student = request.user return render_to_response( 'static_htmlbook.html', { 'book_index': book_index, 'course': course, 'textbook': textbook, 'chapter': chapter, 'student': student, 'staff_access': staff_access, 'notes_enabled': notes_enabled, 'storage': course.annotation_storage_url, 'token': retrieve_token(student.email, course.annotation_token_secret), }, )
def student_view(self, context): """ Renders parameters to template. """ context = { 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user, self.annotation_token_secret), 'tag': self.instructor_tags, 'openseadragonjson': self.openseadragonjson, } fragment = Fragment( self.system.render_template('imageannotation.html', context)) fragment.add_javascript_url( "/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url( "/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment
def notes(request, course_id): ''' Displays the student's notes. ''' course = get_course_with_access(request.user, course_id, 'load') if not notes_enabled_for_course(course): raise Http404 notes = Note.objects.filter(course_id=course_id, user=request.user).order_by('-created', 'uri') student = request.user storage = course.annotation_storage_url context = { 'course': course, 'notes': notes, 'student': student, 'storage': storage, 'token': retrieve_token(student.email, course.annotation_token_secret), } return render_to_response('notes.html', context)
def notes(request, course_id): ''' Displays the student's notes. ''' course = get_course_with_access(request.user, 'load', course_id) if not notes_enabled_for_course(course): raise Http404 notes = Note.objects.filter(course_id=course_id, user=request.user).order_by('-created', 'uri') student = request.user storage = course.annotation_storage_url context = { 'course': course, 'notes': notes, 'student': student, 'storage': storage, 'token': retrieve_token(student.email, course.annotation_token_secret), } return render_to_response('notes.html', context)
def notes(request, course_id): """ Displays the student's notes. """ course_key = SlashSeparatedCourseKey.from_deprecated_string(course_id) course = get_course_with_access(request.user, "load", course_key) if not notes_enabled_for_course(course): raise Http404 notes = Note.objects.filter(course_id=course_key, user=request.user).order_by("-created", "uri") student = request.user storage = course.annotation_storage_url context = { "course": course, "notes": notes, "student": student, "storage": storage, "token": retrieve_token(student.email, course.annotation_token_secret), "default_tab": "myNotes", } return render_to_response("notes.html", context)
def student_view(self, context): """ Renders parameters to template. """ extension = self._get_extension(self.sourceurl) context = { 'course_key': self.runtime.course_id, 'display_name': self.display_name_with_default, 'instructions_html': self.instructions, 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, 'content_html': self.content, 'token': retrieve_token(self.user_email, self.annotation_token_secret), 'annotation_storage': self.annotation_storage_url, 'default_tab': self.default_tab, 'instructor_email': self.instructor_email, 'annotation_mode': self.annotation_mode, } fragment = Fragment(self.system.render_template('videoannotation.html', context)) fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js") fragment.add_javascript_url("/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js") return fragment