def get_assignment(lti=lti):
    assignment_id = int(request.values.get('assignment_id'))
    assignment = Assignment.by_id(assignment_id)
    is_embedded = ('embed' == request.values.get('menu', "select"))
    # Verify exists
    check_resource_exists(assignment, "Assignment", assignment_id)
    # Perform action
    select_url = get_select_menu_link(assignment.id, assignment.title(),
                                      is_embedded, False)
    return jsonify(success=True,
                   redirect=url_for('assignments.load',
                                    assignment_id=assignment.id),
                   id=assignment.id,
                   name=assignment.name,
                   type=assignment.type,
                   instructions=strip_tags(assignment.instructions)[:255],
                   title=assignment.title(),
                   view=url_for('assignments.load',
                                assignment_id=assignment.id,
                                embed=is_embedded),
                   select=select_url,
                   edit=url_for('assignments.load',
                                assignment_id=assignment.id,
                                course_id=assignment.course_id),
                   date_modified=assignment.pretty_date_modified())
Exemple #2
0
def get_assignment(lti=lti):
    '''
    Returns metadata about the assignment.
    '''
    
    # TODO: Security hole, evil instructors could remove assignments outside of their course
    assignment = Assignment.by_id(assignment_id)
    return jsonify(success=True, url=assignment.url, name=assignment.name,
                   body= strip_tags(assignment.body)[:255],
                   on_run=assignment.on_run,
                   title= assignment.title(),
                   answer=assignment.answer, type=assignment.type,
                   visibility=assignment.visibility, disabled=assignment.disabled,
                   mode=assignment.mode, version=assignment.version,
                   id=assignment.id, course_id=assignment.course_id,
                   date_modified = assignment.date_modified.strftime(" %I:%M%p on %a %d, %b %Y").replace(" 0", " "))
Exemple #3
0
def new_assignment(course_id, lti=lti):
    name = request.values.get('name', None) or None
    level = request.values.get('level', None) or None
    menu = request.values.get('menu', "select")
    #TODO: change "normal" type to "blockpy"
    type = request.values.get('type', "normal")
    
    assignment = Assignment.new(owner_id=g.user.id, course_id=course_id, type=type, name=name, level=level)
    launch_type = 'lti_launch_url' if menu != 'embed' else 'iframe'
    endpoint = 'assignments.load'
    return jsonify(success=True,
                   redirect=url_for('assignments.load', assignment_id=assignment.id),
                   id= assignment.id,
                   name= assignment.name,
                   type= type,
                   body= strip_tags(assignment.body)[:255],
                   title= assignment.title(),
                   view = url_for('assignments.load', assignment_id=assignment.id,  embed= menu == 'embed'),
                   select = url_quote(url_for(endpoint, assignment_id=assignment.id, _external=True, embed= menu == 'embed'))+"&return_type="+launch_type+"&title="+url_quote(assignment.title())+"&text=BlockPy%20Exercise&width=100%25&height=600",
                   edit= url_for('assignments.load', assignment_id=assignment.id, course_id=assignment.course_id),
                   date_modified = assignment.date_modified.strftime(" %I:%M%p on %a %d, %b %Y").replace(" 0", " "))
def new_assignment(lti=lti):
    # Get arguments
    course_id = int(request.values.get('course_id'))
    name = request.values.get('name', None) or None
    url = request.values.get('url', None) or None
    level = request.values.get('level', None) or None
    is_embedded = ('embed' == request.values.get('menu', "select"))
    assignment_type = request.values.get('type', "blockpy")
    # Verify permissions
    require_course_instructor(g.user, course_id)
    # Perform action
    assignment = Assignment.new(owner_id=g.user.id,
                                course_id=course_id,
                                url=url,
                                type=assignment_type,
                                name=name,
                                level=level)
    select_url = get_select_menu_link(assignment.id, assignment.title(),
                                      is_embedded, False)
    return jsonify(success=True,
                   redirect=url_for('assignments.load',
                                    assignment_id=assignment.id),
                   id=assignment.id,
                   url=url,
                   name=assignment.name,
                   type=assignment_type,
                   instructions=strip_tags(assignment.instructions)[:255],
                   title=assignment.title(),
                   view=url_for('assignments.load',
                                assignment_id=assignment.id,
                                embed=is_embedded),
                   select=select_url,
                   edit=url_for('assignments.load',
                                assignment_id=assignment.id,
                                course_id=assignment.course_id),
                   date_modified=assignment.pretty_date_modified())