예제 #1
0
    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
예제 #2
0
    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
예제 #4
0
 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)
예제 #7
0
 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)
예제 #8
0
    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)
예제 #10
0
    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)
예제 #13
0
 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
예제 #14
0
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),
        },
    )
예제 #15
0
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),
        },
    )
예제 #16
0
    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
예제 #17
0
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)
예제 #18
0
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)
예제 #19
0
파일: views.py 프로젝트: ahmadiga/min_edx
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