Ejemplo n.º 1
0
    def create(self, course, module):
        url = WWURL.format(self.wwclass, self.wwset)

        groups = canvas.get_assignment_groups(course)
        groupid = groups[0]['id']
        if self.group is not None:
            for group in groups:
                if group['name'] == self.group:
                    groupid = group['id']
                    break

        ass = canvas.create_assignment(course, self.name, "WeBWorK",
                                       self.points, self.deadline, groupid,
                                       submission_types="external_tool",
                                       ext_tool_url=url, ext_tool_new_tab=True)
        ass.raise_for_status()
        assid = ass.json()["id"]

        canvas.create_module_item(course, module, self.title, None,
                                  "Assignment", indent=self.indent,
                                  content=assid)

        if self.announcement is not None:
            date = datetime.datetime.strptime(
                self.deadline, "%Y-%m-%dT%H:%M:%S"
            )
            canvas.post_announcement_from_markdown(
                course,
                "Assignment {} posted".format(self.name),
                self.announcement + date.strftime(
                    "\n\n__Due %m/%d/%y at %H:%M__"
                )
            )
Ejemplo n.º 2
0
    def create(self, course, module):

        groups = canvas.get_assignment_groups(course)
        groupid = groups[0]['id']
        if self.group is not None:
            for group in groups:
                if group['name'] == self.group:
                    groupid = group['id']
                    break

        resp = canvas.create_assignment(
            course, self.name,
            self.markdown_description, self.points,
            self.due_at, groupid,
            submission_types=self.submission_types,
            allowed_extensions=self.allowed_extensions,
            peer_reviews=self.peer_reviews,
            auto_peer_reviews=self.auto_peer_reviews,
            ext_tool_url=self.ext_tool_url,
            ext_tool_new_tab=self.ext_tool_new_tab)

        resp.raise_for_status()
        assid = resp.json()['id']
        canvas.create_module_item(course, module, self.title, None,
                                  "Assignment", indent=self.indent,
                                  content=assid)
Ejemplo n.º 3
0
    def create(self, course, module):
        resp = canvas.upload_file_to_course(course, self.local_file,
                                            self.remote_path,
                                            self.remote_name)

        fileid = resp.json()['id']

        canvas.create_module_item(course, module, self.title, None,
                                  "File", indent=self.indent,
                                  content=fileid)
Ejemplo n.º 4
0
    def create(self, course, module):
        resp = canvas.get_assignments(course, self.name)

        # This is really stoopid, it just takes the first assignment that was
        # found, so if there is more assignments with the same name, ...

        if not resp:
            print("Creating assignment item: assignment ain't there!")
        else:
            assid = resp[0]['id']
            canvas.create_module_item(course, module, self.title, None,
                                      "Assignment", indent=self.indent,
                                      content=assid)
Ejemplo n.º 5
0
    def create(self, course, module):
        resp = canvas.list_files(course, self.fname)

        # This is really stoopid, it just takes the first file that was found,
        # so if there is more files with the same name, be careful.  Eventually
        # there should be a way to specify a folder TODO

        if not resp:
            print("Creating file item: file ain't there!")
        else:
            fileid = resp[0]['id']
            canvas.create_module_item(course, module, self.title, None,
                                      "File", indent=self.indent,
                                      content=fileid)
Ejemplo n.º 6
0
def add_text_header(classid, module, text, position=None, indent=0):
    """
    Add a quick text header.
    """

    resp = canvas.create_module_item(classid, module, text, position,
                                     "SubHeader", indent)

    resp.raise_for_status()

    return resp.json()
Ejemplo n.º 7
0
def upload_file(classid, module, fname, directory, title, position, indent=1):
    """
    Uploads file to Canvas to class given by classid in the given directory.
    Adds a link to the file as an item in the given module, at the given
    position with the given title.
    """

    resp = canvas.upload_file_to_course(classid, fname, directory)
    resp.raise_for_status()

    file_id = resp.json()['id']

    resp = canvas.create_module_item(classid,
                                     module,
                                     title,
                                     position,
                                     "File",
                                     indent=indent,
                                     content=file_id)
    resp.raise_for_status()

    return resp.json()
Ejemplo n.º 8
0
 def create(self, course, module):
     canvas.create_module_item(course, module, self.title, None,
                               "SubHeader", indent=self.indent)
Ejemplo n.º 9
0
 def create(self, course, module):
     canvas.create_module_item(course, module, self.title, None,
                               "ExternalTool", indent=self.indent,
                               external_url=self.url, new_tab=self.new_tab)