Exemplo n.º 1
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,
        }
Exemplo n.º 2
0
class Spot(models.Model):
    """ Represents a place for students to study.
    """
    spot_id = models.IntegerField()
    name = models.CharField(max_length=100, blank=True)
    uri = models.CharField(max_length=255)
    thumbnail_root = models.CharField(max_length=255)
    latitude = models.DecimalField(max_digits=11, decimal_places=8, null=True)
    longitude = models.DecimalField(max_digits=11, decimal_places=8, null=True)
    height_from_sea_level = models.DecimalField(max_digits=11,
                                                decimal_places=8,
                                                null=True,
                                                blank=True)
    building_name = models.CharField(max_length=100, blank=True)
    floor = models.CharField(max_length=50, blank=True)
    room_number = models.CharField(max_length=25, blank=True)
    building_description = models.CharField(max_length=100, blank=True)
    capacity = models.IntegerField(null=True, blank=True)
    display_access_restrictions = models.CharField(max_length=200, blank=True)
    organization = models.CharField(max_length=50, blank=True)
    manager = models.CharField(max_length=50, blank=True)
    etag = models.CharField(max_length=40)
    last_modified = models.DateTimeField()
    external_id = models.CharField(max_length=100,
                                   null=True,
                                   blank=True,
                                   default=None,
                                   unique=True)
Exemplo n.º 3
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 = []
Exemplo n.º 4
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"
Exemplo n.º 5
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
            }
        }
Exemplo n.º 6
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"
Exemplo n.º 7
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()
Exemplo n.º 8
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()
Exemplo n.º 9
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)
Exemplo n.º 10
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"
Exemplo n.º 11
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))
Exemplo n.º 12
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"
Exemplo n.º 13
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,
        }
Exemplo n.º 14
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()
Exemplo n.º 15
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)
Exemplo n.º 16
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"]
Exemplo n.º 17
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
            }
        }
Exemplo n.º 18
0
class CanvasAdmin(models.Model):
    admin_id = models.IntegerField()
    role = models.CharField(max_length=100)
    user = models.ForeignKey(CanvasUser)

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

        self.admin_id = data["id"]
        self.role = data["role"]
        self.user = CanvasUser(data=data["user"])
Exemplo n.º 19
0
class Report(models.Model):
    report_id = models.IntegerField()
    account_id = models.IntegerField()
    type = models.CharField(max_length=500)
    url = models.CharField(max_length=500)
    status = models.CharField(max_length=50)
    progress = models.SmallIntegerField(max_length=3, default=0)
    attachment = models.ForeignKey(Attachment, null=True)

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

        self.account_id = data["account_id"]
        self.report_id = data["id"]
        self.type = data["report"]
        self.url = data["file_url"]
        self.status = data["status"]
        self.progress = data["progress"]
        self.parameters = data["parameters"]

        if "attachment" in data:
            self.attachment = Attachment(data=data["attachment"])
Exemplo n.º 20
0
 class ModelTest(models.Model):
     bools = models.BooleanField()
     chars = models.CharField(max_length=20)
     dates = models.DateField()
     datetimes = models.DateTimeField()
     decimals = models.DecimalField()
     floats = models.FloatField()
     ints = models.IntegerField()
     nullbools = models.NullBooleanField()
     posints = models.PositiveIntegerField()
     possmalls = models.PositiveSmallIntegerField()
     slugs = models.SlugField()
     smallints = models.SmallIntegerField()
     texts = models.TextField()
     texts2 = models.TextField()
     times = models.TimeField()
     urls = models.URLField()
Exemplo n.º 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"]
Exemplo n.º 22
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", [])
Exemplo n.º 23
0
class Major(models.Model):
    major_abbr = models.CharField(max_length=32)
    program_code = models.CharField(max_length=128)
    academic_qtr_key_id = models.IntegerField()
    major_pathway = models.IntegerField()
    display_name = models.CharField(max_length=255)
    college = models.CharField(max_length=255)
    division = models.CharField(max_length=255)
    dtx = models.CharField(max_length=255)
    assigned_count = models.IntegerField()
    assigned_resident = models.IntegerField(null=True)
    assigned_nonresident = models.IntegerField(null=True)
    assigned_international = models.IntegerField(null=True)
Exemplo n.º 24
0
class CohortAssignment(Assignment):
    cohort_number = models.IntegerField()
    override_previous = models.BooleanField()
    override_protected = models.BooleanField()

    def json_data(self):
        applicant_json = []
        for application in self.applicants:
            applicant_json.append(application.json_data())
        return {'applicants': applicant_json,
                'cohortNbr': int(self.cohort_number),
                'overridePreviousCohort': self.override_previous,
                'overridePreviousProtectedCohort': self.override_protected,
                'assignmentDetail': {'assignmentType': self.assignment_type,
                                     'academicQtrKeyId': self.quarter,
                                     'campus': int(self.campus),
                                     'comments': self.comments,
                                     'decisionImportUser': self.user}
                }
Exemplo n.º 25
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"])
Exemplo n.º 26
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)}
Exemplo n.º 27
0
class CanvasTerm(models.Model):
    term_id = models.IntegerField()
    sis_term_id = models.CharField(max_length=100, null=True)
    name = models.CharField(max_length=100)
    workflow_state = models.CharField(max_length=50)
    start_at = models.DateTimeField(null=True)
    end_at = models.DateTimeField(null=True)

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

        self.term_id = data.get('id')
        self.sis_term_id = data.get('sis_term_id')
        self.name = data.get('name')
        self.workflow_state = data.get('workflow_state')
        if 'start_at' in data and data['start_at']:
            self.start_at = dateutil.parser.parse(data['start_at'])
        if 'end_at' in data and data['end_at']:
            self.end_at = dateutil.parser.parse(data['end_at'])
        self.overrides = data.get('overrides', {})
Exemplo n.º 28
0
class GroupHistory(GWSModel):
    description = models.CharField(max_length=512)
    activity = models.CharField(max_length=64)
    member_uwnetid = models.CharField(max_length=128, null=True)
    member_action = models.CharField(max_length=32, null=True)
    timestamp = models.IntegerField()

    # Epoch timestamp in milliseconds

    def is_add_member(self):
        return self.member_action and self.member_action == "add member"

    def is_delete_member(self):
        return self.member_action and self.member_action == "delete member"

    def json_data(self):
        return {
            "description": self.description,
            "activity": self.activity,
            "timestamp": self.timestamp,
            "member_uwnetid": self.member_uwnetid,
            "member_action": self.member_action,
            "is_add_member": self.is_add_member(),
            "is_delete_member": self.is_delete_member(),
        }

    def __init__(self, *args, **kwargs):
        data = kwargs.get("data")
        if data is None:
            return super(GroupHistory, self).__init__(*args, **kwargs)
        self.activity = data.get("activity")
        self.description = data.get("description")
        self.timestamp = int(data.get("timestamp"))
        if self.activity == "membership":
            self.member_action, name = self.description.split(": ")
            self.member_uwnetid = name.replace("'", "")
Exemplo n.º 29
0
class DepartmentalDecisionApplication(Application):
    decision_id = models.IntegerField()

    def json_data(self):
        return {'admissionSelectionId': int(self.adsel_id),
                'departmentalDecisionId': self.decision_id}
Exemplo n.º 30
0
class PurpleGoldApplication(Application):
    award_amount = models.IntegerField()

    def json_data(self):
        return {'admissionSelectionId': int(self.adsel_id),
                'awardAmount': self.award_amount}