예제 #1
0
 def author_view(self):
     resource_html = ResourceHTML()
     current_role = ClassGroupPermissions.get_permission_level(
         self.resource.classgroup, self.resource, "change_resource")
     resource_html.add_html(
         render_to_string(
             self.resource_author_template, {
                 'content':
                 self.render_module_author(),
                 'resource_id':
                 self.resource_id,
                 'js_class_name':
                 self.author_js_class_name,
                 'resource_type':
                 self.resource_type,
                 'class_name':
                 self.class_name,
                 'roles': [
                     ClassGroupPermissions.student,
                     ClassGroupPermissions.teacher
                 ],
                 'current_role':
                 current_role,
             }))
     for js in self.author_js:
         resource_html.add_js(js)
     for css in self.author_css:
         resource_html.add_css(css)
     return resource_html
예제 #2
0
    def child_user_views(self):
        """
        Gets the user views for the children of this module.  Used when rendering a vertical.
        """
        child_views = []
        children = self.get_children()

        # Store data to prevent descriptor overwrite by children.
        self.module.store_data()
        for child in children:
            child_access_level = ClassGroupPermissions.get_permission_level(
                child.classgroup, child, "change_resource")
            user_access_level = ClassGroupPermissions.access_level(
                child.classgroup, self.user)
            if ClassGroupPermissions.PERMISSION_LEVELS[
                    user_access_level] >= ClassGroupPermissions.PERMISSION_LEVELS[
                        child_access_level]:
                user_state, created = UserResourceState.objects.get_or_create(
                    user=self.user, resource=child)
                renderer = ResourceRenderer(child,
                                            user_resource_state=user_state,
                                            static_data=self.static_data,
                                            user=self.user)
                child_views.append(renderer.user_view())

        # Read data back in.
        self.module.read_data()
        return child_views
예제 #3
0
 def author_view(self):
     resource_html = ResourceHTML()
     current_role = ClassGroupPermissions.get_permission_level(self.resource.classgroup, self.resource, "change_resource")
     resource_html.add_html(render_to_string(self.resource_author_template, {
         'content': self.render_module_author(),
         'resource_id': self.resource_id,
         'js_class_name': self.author_js_class_name,
         'resource_type': self.resource_type,
         'class_name': self.class_name,
         'roles': [ClassGroupPermissions.student, ClassGroupPermissions.teacher],
         'current_role': current_role,
     }))
     for js in self.author_js:
         resource_html.add_js(js)
     for css in self.author_css:
         resource_html.add_css(css)
     return resource_html
예제 #4
0
    def child_user_views(self):
        """
        Gets the user views for the children of this module.  Used when rendering a vertical.
        """
        child_views = []
        children = self.get_children()

        # Store data to prevent descriptor overwrite by children.
        self.module.store_data()
        for child in children:
            child_access_level = ClassGroupPermissions.get_permission_level(child.classgroup, child, "change_resource")
            user_access_level = ClassGroupPermissions.access_level(child.classgroup, self.user)
            if ClassGroupPermissions.PERMISSION_LEVELS[user_access_level] >= ClassGroupPermissions.PERMISSION_LEVELS[child_access_level]:
                user_state, created = UserResourceState.objects.get_or_create(
                    user=self.user,
                    resource=child
                )
                renderer = ResourceRenderer(child, user_resource_state=user_state, static_data=self.static_data, user=self.user)
                child_views.append(renderer.user_view())

        # Read data back in.
        self.module.read_data()
        return child_views