Пример #1
0
class Reservation(models.Model):
    STANDARD_STATE = "1"
    EXCEPTION_STATE = "2"
    WARNING_STATE = "3"
    OVERRIDE_STATE = "4"
    CANCELLED_STATE = "99"

    STATE_CHOICES = (
        (STANDARD_STATE, "Standard"),
        (EXCEPTION_STATE, "Exception"),
        (WARNING_STATE, "Warning"),
        (OVERRIDE_STATE, "Override"),
        (CANCELLED_STATE, "Cancelled"),
    )

    reservation_id = models.IntegerField()
    state = models.CharField(max_length=2, choices=STATE_CHOICES)
    start_datetime = models.DateTimeField()
    end_datetime = models.DateTimeField()
    event_id = models.IntegerField()
    event_name = models.CharField(max_length=64)
    profile_name = models.CharField(max_length=32)
    contact_name = models.CharField(max_length=64)
    contact_email = models.CharField(max_length=64)

    def state_name(self):
        return dict(self.STATE_CHOICES)[self.state]

    class Meta:
        db_table = "restclients_r25_reservation"
Пример #2
0
class SpotExtendedInfo(models.Model):
    """
    Additional institution-provided metadata about a spot. If providing custom
    metadata, you should provide a validator for that data, as well.
    """
    key = models.CharField(max_length=50)
    value = models.CharField(max_length=255)
Пример #3
0
class Space(models.Model):
    space_id = models.IntegerField()
    name = models.CharField(max_length=100)
    formal_name = models.CharField(max_length=200)

    class Meta:
        db_table = "restclients_r25_space"
Пример #4
0
class ReportType(models.Model):
    PROVISIONING = "provisioning_csv"
    SIS_EXPORT = "sis_export_csv"
    UNUSED_COURSES = "unused_courses_csv"

    NAME_CHOICES = ((PROVISIONING, "Provisioning"), (SIS_EXPORT, "SIS Export"),
                    (UNUSED_COURSES, "Unused Courses"))

    name = models.CharField(max_length=500, choices=NAME_CHOICES)
    title = models.CharField(max_length=500)

    def __init__(self, *args, **kwargs):
        self.parameters = {}
        self.last_run = None

        data = kwargs.get("data")
        if data is None:
            return super(ReportType, self).__init__(*args, **kwargs)

        self.name = data["report"]
        self.title = data["title"]
        self.parameters = data["parameters"]
        if "last_run" in data and data["last_run"] is not None:
            data["last_run"]["account_id"] = kwargs.get("account_id")
            self.last_run = Report(data=data["last_run"])
Пример #5
0
class Assignment(models.Model):
    assignment_type = models.CharField()
    quarter = models.IntegerField()
    campus = models.IntegerField()
    comments = models.TextField()
    user = models.CharField(max_length=12)
    applicants = []
Пример #6
0
class GradingStandard(models.Model):
    COURSE_CONTEXT = "Course"
    ACCOUNT_CONTEXT = "Account"

    CONTEXT_CHOICES = ((COURSE_CONTEXT, COURSE_CONTEXT), (ACCOUNT_CONTEXT,
                                                          ACCOUNT_CONTEXT))

    grading_standard_id = models.IntegerField()
    title = models.CharField(max_length=500)
    context_id = models.IntegerField()
    context_type = models.CharField(max_length=20, choices=CONTEXT_CHOICES)
    grading_scheme = models.TextField()

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(GradingStandard, self).__init__(*args, **kwargs)

        self.grading_standard_id = data["id"]
        self.title = data["title"]
        self.context_type = data["context_type"]
        self.context_id = data["context_id"]
        self.grading_scheme = data["grading_scheme"]

    def json_data(self):
        return {
            "id": self.grading_standard_id,
            "title": self.title,
            "context_type": self.context_type,
            "context_id": self.context_id,
            "grading_scheme": self.grading_scheme,
        }
Пример #7
0
class Login(models.Model):
    login_id = models.IntegerField()
    account_id = models.IntegerField()
    sis_user_id = models.CharField(max_length=100, null=True)
    unique_id = models.CharField(max_length=100, null=True)
    user_id = models.IntegerField()

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(Login, self).__init__(*args, **kwargs)

        self.login_id = data["id"]
        self.account_id = data["account_id"]
        self.sis_user_id = data.get("sis_user_id")
        self.unique_id = data["unique_id"]
        self.user_id = data["user_id"]

    def put_data(self):
        return {
            "login": {
                "unique_id": self.unique_id,
                "sis_user_id": self.sis_user_id
            }
        }
Пример #8
0
class Session(models.Model):
    id = models.CharField(max_length=36)
    name = models.CharField(max_length=256)
    description = models.CharField(max_length=256)
    start_time = models.DateTimeField(null=True)
    folder = models.CharField(max_length=256)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(Session, self).__init__(*args, **kwargs)

        self.id = data.get("Id")
        self.name = data.get("Name")
        self.description = data.get("Description")
        self.start_time = parse(data.get("StartTime")) if ("StartTime"
                                                           in data) else None
        self.folder = data.get("Folder")

    def to_json(self):
        return {
            'id': self.id,
            'name': self.name,
            'description': self.description,
            'start_time': str(self.start_time) if self.start_time else None,
            'folder': self.folder
        }

    def __str__(self):
        return json.dumps(self.to_json())
Пример #9
0
class ScheduledRecording(models.Model):
    id = models.CharField(max_length=36)
    name = models.CharField(max_length=256)
    start_time = models.DateTimeField(null=True)
    end_time = models.DateTimeField(null=True)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(ScheduledRecording, self).__init__(*args, **kwargs)

        self.id = data.get("Id")
        self.name = data.get("Name")
        self.start_time = parse(data.get("StartTime")) if ("StartTime"
                                                           in data) else None
        self.end_time = parse(data.get("EndTime", "")) if ("EndTime"
                                                           in data) else None

    def to_json(self):
        return {
            'id': self.id,
            'name': self.name,
            'start_time': str(self.start_time) if self.start_time else None,
            'start_time': str(self.end_time) if self.end_time else None
        }

    def __str__(self):
        return json.dumps(self.to_json())
Пример #10
0
class RecorderScheduledEntry(models.Model):
    id = models.CharField(max_length=36)
    name = models.CharField(max_length=256)
    recorder_id = models.CharField(max_length=36)
    suppress_primary_capture = models.BooleanField(default=False)
    suppress_secondary_capture = models.BooleanField(default=False)
    recorder_description = models.CharField(max_length=256)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(RecorderScheduledEntry,
                         self).__init__(*args, **kwargs)

        self.id = data.get("Id")
        self.name = data.get("Name")
        self.suppress_primary_capture = (data.get("SuppressPrimaryCapture",
                                                  False) == "true")
        self.suppress_secondary_capture = (data.get("SuppressSecondaryCapture",
                                                    False) == "true")
        self.recorder_description = data.get("RecorderDescription")

    def to_json(self):
        return {
            'id': self.id,
            'name': self.name,
            'recorder_id': self.recorder_id,
            'suppress_primary_capture': self.suppress_primary_capture,
            'suppress_secondary_capture': self.suppress_secondary_capture,
            'recorder_description': self.recorder_description
        }

    def __str__(self):
        return json.dumps(self.to_json())
Пример #11
0
class CanvasRole(models.Model):
    role_id = models.IntegerField()
    label = models.CharField(max_length=200)
    base_role_type = models.CharField(max_length=200)
    workflow_state = models.CharField(max_length=50)

    def __init__(self, *args, **kwargs):
        self.permissions = {}

        data = kwargs.get("data")
        if data is None:
            return super(CanvasRole, self).__init__(*args, **kwargs)

        self.role_id = data["id"]
        self.label = data["label"]
        self.base_role_type = data["base_role_type"]
        self.workflow_state = data["workflow_state"]
        self.permissions = data.get("permissions", {})
        if "account" in data:
            self.account = CanvasAccount(data=data["account"])

    def json_data(self):
        return {
            "id": self.role_id,
            "label": self.label,
            "base_role_type": self.base_role_type,
            "workflow_state": self.workflow_state,
            "permissions": self.permissions,
        }
Пример #12
0
class Quarter(models.Model):
    id = models.IntegerField()
    begin = models.DateTimeField()
    end = models.DateTimeField()
    active_ind = models.CharField(max_length=32)
    appl_yr = models.CharField(max_length=4)
    appl_qtr = models.CharField(max_length=1)
    is_current = models.BooleanField()
Пример #13
0
class Cohort(models.Model):
    academic_qtr_id = models.IntegerField()
    cohort_number = models.IntegerField()
    cohort_description = models.TextField()
    cohort_residency = models.CharField(max_length=255)
    admit_decision = models.CharField(max_length=255)
    protected_group = models.BooleanField()
    active_cohort = models.BooleanField()
    assigned_count = models.IntegerField()
Пример #14
0
class ItemImage(models.Model):
    image_id = models.IntegerField()
    description = models.CharField(max_length=200, blank=True)
    display_index = models.PositiveIntegerField(null=True, blank=True)
    width = models.IntegerField()
    height = models.IntegerField()
    content_type = models.CharField(max_length=40)
    creation_date = models.DateTimeField(auto_now_add=True)
    upload_user = models.CharField(max_length=40)
    upload_application = models.CharField(max_length=100)
Пример #15
0
class Activity(models.Model):
    assignment_date = models.DateTimeField()
    comment = models.TextField()
    user = models.CharField(max_length=12)
    assignment_type = models.TextField()
    cohort_number = models.IntegerField()
    major_abbr = models.CharField(max_length=32)
    major_program_code = models.CharField(max_length=32)
    total_submitted = models.IntegerField()
    total_assigned = models.IntegerField()
Пример #16
0
class Event(models.Model):
    DRAFT_STATE = "0"
    TENTATIVE_STATE = "1"
    CONFIRMED_STATE = "2"
    SEALED_STATE = "3"
    DENIED_STATE = "4"
    CANCELLED_STATE = "99"

    STATE_CHOICES = (
        (DRAFT_STATE, "Draft"),
        (TENTATIVE_STATE, "Tentative"),
        (CONFIRMED_STATE, "Confirmed"),
        (SEALED_STATE, "Sealed"),
        (DENIED_STATE, "Denied"),
        (CANCELLED_STATE, "Cancelled"),
    )

    event_id = models.IntegerField()
    alien_uid = models.CharField(max_length=100, null=True)
    name = models.CharField(max_length=100)
    title = models.CharField(max_length=100)
    start_date = models.DateField()
    end_date = models.DateField()
    state = models.CharField(max_length=2, choices=STATE_CHOICES)
    parent_id = models.IntegerField(null=True)
    cabinet_id = models.IntegerField(null=True)
    cabinet_name = models.CharField(max_length=100, null=True)

    def state_name(self):
        return dict(self.STATE_CHOICES)[self.state]

    def parent(self):
        if not hasattr(self, "_parent"):
            self._parent = None
            if self.parent_id is not None:
                from uw_r25.events import get_event_by_id
                self._parent = get_event_by_id(self.parent_id)
        return self._parent

    def children(self):
        if not hasattr(self, "_children"):
            from uw_r25.events import get_events
            self._children = get_events(parent_id=self.event_id)
        return self._children

    def cabinet(self):
        if self.cabinet_id is not None:
            if self.cabinet_id == self.event_id:
                return self
            else:
                from uw_r25.events import get_event_by_id
                return get_event_by_id(self.cabinet_id)

    class Meta:
        db_table = "restclients_r25_event"
Пример #17
0
class Submission(models.Model):
    submission_id = models.IntegerField()
    body = models.TextField(null=True)
    attempt = models.IntegerField(max_length=2)
    submitted_at = models.DateTimeField()
    assignment_id = models.IntegerField()
    assignment_visible = models.BooleanField(null=True)
    workflow_state = models.CharField(max_length=100, null=True)
    preview_url = models.CharField(max_length=500)
    late = models.NullBooleanField()
    grade = models.TextField(max_length=12, null=True)
    score = models.DecimalField(max_digits=10, decimal_places=2, null=True)
    grade_matches_current_submission = models.NullBooleanField()
    url = models.CharField(max_length=500, null=True)
    grader_id = models.IntegerField()
    graded_at = models.DateTimeField(null=True)
    posted_at = models.DateTimeField(null=True)
    submission_type = models.CharField(max_length=100, null=True)

    def __init__(self, *args, **kwargs):
        self.attachments = []

        data = kwargs.get("data")
        if data is None:
            return super(Submission, self).__init__(*args, **kwargs)

        self.submission_id = data['id']
        self.body = data['body']
        self.attempt = data['attempt']
        if "submitted_at" in data and data["submitted_at"] is not None:
            self.submitted_at = dateutil.parser.parse(data["submitted_at"])
        self.assignment_id = data["assignment_id"]
        self.workflow_state = data["workflow_state"]
        self.preview_url = data["preview_url"]
        self.late = data["late"]
        self.grade = data["grade"]
        self.score = data["score"]
        self.grade_matches_current_submission = data.get(
            "grade_matches_current_submission")
        self.url = data["url"]
        self.grader_id = data["grader_id"]
        if "graded_at" in data and data["graded_at"] is not None:
            self.graded_at = dateutil.parser.parse(data["graded_at"])
        if "posted_at" in data and data["posted_at"] is not None:
            self.posted_at = dateutil.parser.parse(data["posted_at"])
        self.submission_type = data["submission_type"]

        # assignment_visible is not always present
        self.assignment_visible = data.get("assignment_visible")

        for attachment_data in data.get("attachments", []):
            self.attachments.append(Attachment(data=attachment_data))
Пример #18
0
class Application(models.Model):
    adsel_id = models.IntegerField()
    application_number = models.IntegerField()
    system_key = models.IntegerField()
    campus = models.IntegerField()
    quarter_id = models.IntegerField()
    assigned_cohort = models.IntegerField()
    assigned_major = models.CharField(max_length=32)
    major_program_code = models.CharField(max_length=255)

    def json_data(self):
        return {'admissionSelectionId': int(self.adsel_id),
                'applicationNbr': self.application_number,
                'systemKey': int(self.system_key)}
Пример #19
0
class GroupReference(GWSModel):
    name = models.CharField(max_length=500)
    uwregid = models.CharField(max_length=32)
    display_name = models.CharField(max_length=500)
    url = models.CharField(max_length=200)

    def json_data(self):
        return {
            "id": self.name,
            "regid": self.uwregid,
            "displayName": self.display_name,
            "url": self.url,
        }

    def __init__(self, *args, **kwargs):
        super(GroupReference, self).__init__(*args, **kwargs)
Пример #20
0
class CanvasUser(models.Model):
    user_id = models.IntegerField()
    name = models.CharField(max_length=100, null=True)
    short_name = models.CharField(max_length=100, null=True)
    sortable_name = models.CharField(max_length=100, null=True)
    sis_user_id = models.CharField(max_length=100, null=True)
    login_id = models.CharField(max_length=100, null=True)
    time_zone = models.CharField(max_length=100, null=True)
    locale = models.CharField(max_length=2, null=True)
    email = models.CharField(max_length=100, null=True)
    avatar_url = models.CharField(max_length=500, null=True)

    def __init__(self, *args, **kwargs):
        self.enrollments = []

        data = kwargs.get("data")
        if data is None:
            return super(CanvasUser, self).__init__(*args, **kwargs)

        self.user_id = data["id"]
        self.name = data["name"]
        self.short_name = data.get("short_name")
        self.sortable_name = data.get("sortable_name")
        self.login_id = data.get("login_id")
        self.sis_user_id = data.get("sis_user_id")
        self.email = data.get("email")
        self.time_zone = data.get("time_zone")
        self.locale = data.get("locale")
        self.avatar_url = data.get("avatar_url")
        for enr_datum in data.get("enrollments", []):
            self.enrollments.append(CanvasEnrollment(data=enr_datum))

    def post_data(self):
        return {
            "user": {
                "name": self.name,
                "short_name": self.short_name,
                "sortable_name": self.sortable_name,
                "time_zone": self.time_zone,
                "locale": self.locale
            },
            "pseudonym": {
                "unique_id": self.login_id,
                "sis_user_id": self.sis_user_id,
                "send_confirmation": False
            },
            "communication_channel": {
                "type": "email",
                "address": self.email,
                "skip_confirmation": True
            }
        }
Пример #21
0
class CanvasAccount(models.Model):
    account_id = models.IntegerField()
    sis_account_id = models.CharField(max_length=100, null=True)
    name = models.CharField(max_length=500)
    parent_account_id = models.CharField(max_length=30)
    root_account_id = models.CharField(max_length=30)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(CanvasAccount, self).__init__(*args, **kwargs)

        self.account_id = data["id"]
        self.sis_account_id = data.get("sis_account_id")
        self.name = data["name"]
        self.parent_account_id = data["parent_account_id"]
        self.root_account_id = data["root_account_id"]
Пример #22
0
class SessionCreator(models.Model):
    id = models.CharField(max_length=36)
    user_name = models.CharField(max_length=128)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(SessionCreator, self).__init__(*args, **kwargs)

        self.id = data.get("Id")
        self.user_name = data.get("Username")

    def to_json(self):
        return {'id': self.id, 'user_name': self.name}

    def __str__(self):
        return json.dumps(self.to_json())
Пример #23
0
class RecordingFolder(models.Model):
    id = models.CharField(max_length=36)
    name = models.CharField(max_length=256)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(RecordingFolder, self).__init__(*args, **kwargs)

        self.id = data.get("Id")
        self.name = data.get("Name")

    def to_json(self):
        return {'id': self.id, 'name': self.name}

    def __str__(self):
        return json.dumps(self.to_json())
Пример #24
0
class SISImport(models.Model):
    CSV_IMPORT_TYPE = "instructure_csv"

    import_id = models.IntegerField()
    workflow_state = models.CharField(max_length=100)
    progress = models.CharField(max_length=3)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(SISImport, self).__init__(*args, **kwargs)

        self.import_id = data["id"]
        self.workflow_state = data["workflow_state"]
        self.progress = data.get("progress", "0")
        self.processing_warnings = data.get("processing_warnings", [])
        self.processing_errors = data.get("processing_errors", [])
Пример #25
0
class BindingReservation(models.Model):
    bound_reservation_id = models.IntegerField()
    primary_reservation = models.IntegerField()
    name = models.CharField(max_length=200)
    bound_event_id = models.IntegerField()

    class Meta:
        db_table = "restclients_r25_binding_reservation"
Пример #26
0
class SessionUrls(models.Model):
    viewer_url = models.CharField(max_length=256)
    embed_url = models.CharField(max_length=256)
    share_settings_url = models.CharField(max_length=256)
    download_url = models.CharField(max_length=256)
    caption_download_url = models.CharField(max_length=256)
    editor_url = models.CharField(max_length=256)
    thumbnail_url = models.CharField(max_length=256)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(SessionUrls, self).__init__(*args, **kwargs)

        self.viewer_url = data.get("ViewerUrl")
        self.embed_url = data.get("EmbedUrl")
        self.share_settings_url = data.get("ShareSettingsUrl")
        self.download_url = data.get("DownloadUrl")
        self.caption_download_url = data.get("CaptionDownloadUrl")
        self.editor_url = data.get("EditorUrl")
        self.thumbnail_url = data.get("ThumbnailUrl")

    def to_json(self):
        return {
            'viewer_url': self.viewer_url,
            'embed_url': self.embed_url,
            'share_settings_url': self.share_settings_url,
            'download_url': self.download_url,
            'caption_download_url': self.caption_download_url,
            'editor_url': self.editor_url,
            'thumbnail_url': self.thumbnail_url
        }

    def __str__(self):
        return json.dumps(self.to_json())
Пример #27
0
class SpotImage(models.Model):
    """
    An image of a Spot. Multiple images can be associated with a Spot,
    and Spot objects have a 'Spot.spotimage_set' method that will return all
    SpotImage objects for the Spot.
    """

    image_id = models.IntegerField()
    url = models.CharField(max_length=255)
    description = models.CharField(max_length=200, blank=True)
    display_index = models.PositiveIntegerField(null=True, blank=True)
    content_type = models.CharField(max_length=40)
    width = models.IntegerField()
    height = models.IntegerField()
    creation_date = models.DateTimeField()
    modification_date = models.DateTimeField()
    upload_user = models.CharField(max_length=40)
    upload_application = models.CharField(max_length=100)
Пример #28
0
class Quiz(models.Model):
    quiz_id = models.IntegerField()
    due_at = models.DateTimeField()
    title = models.CharField(max_length=500)
    html_url = models.CharField(max_length=500, null=True)
    published = models.NullBooleanField()

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(Quiz, self).__init__(*args, **kwargs)

        self.quiz_id = data["id"]
        self.title = data["title"]
        self.html_url = data["html_url"]
        self.published = data["published"]
        self.points_possible = data["points_possible"]
        if "due_at" in data and "due_at" is not None:
            self.due_at = dateutil.parser.parse(data["due_at"])
Пример #29
0
class Attachment(models.Model):
    attachment_id = models.IntegerField()
    filename = models.CharField(max_length=100)
    display_name = models.CharField(max_length=200)
    content_type = models.CharField(max_length=50)
    size = models.IntegerField()
    url = models.CharField(max_length=500)

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(Attachment, self).__init__(*args, **kwargs)

        self.attachment_id = data["id"]
        self.filename = data["filename"]
        self.display_name = data["display_name"]
        self.content_type = data["content-type"]
        self.size = data["size"]
        self.url = data["url"]
Пример #30
0
class BridgeCustomField(models.Model):

    # Field names:
    REGID_NAME = "regid"
    EMPLOYEE_ID_NAME = "employee_id"
    STUDENT_ID_NAME = "student_id"

    POS1_BUDGET_CODE = "pos1_budget_code"
    POS1_JOB_CODE = "pos1_job_code"
    POS1_JOB_CLAS = "pos1_job_class"    # job classification
    POS1_LOCATION = "pos1_location"
    POS1_ORG_CODE = "pos1_org_code"
    POS1_ORG_NAME = "pos1_org_name"
    POS1_UNIT_CODE = "pos1_unit_code"

    POS2_BUDGET_CODE = "pos2_budget_code"
    POS2_JOB_CODE = "pos2_job_code"
    POS2_JOB_CLAS = "pos2_job_class"
    POS2_LOCATION = "pos2_location"
    POS2_ORG_CODE = "pos2_org_code"
    POS2_ORG_NAME = "pos2_org_name"
    POS2_UNIT_CODE = "pos2_unit_code"

    field_id = models.CharField(max_length=10)
    name = models.CharField(max_length=64)
    value_id = models.CharField(max_length=10, null=True, default=None)
    value = models.CharField(max_length=256, null=True, default=None)

    def to_json(self):
        value = {"custom_field_id": self.field_id,
                 "value": self.value}
        if self.value_id is not None:
            value["id"] = self.value_id
        return value

    def to_json_short(self):
        return {"name": self.name, "value": self.value}

    def __init__(self, *args, **kwargs):
        super(BridgeCustomField, self).__init__(*args, **kwargs)

    def __str__(self):
        return json.dumps(self.to_json_short())