Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions denis/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,15 @@ class Assignment(BaseModel):
final_due_date = peewee.IntegerField()


class PeerReviewAssignment(BaseModel):
assignment = peewee.TextField()
reviewer = peewee.TextField()
reviewee1 = peewee.TextField()
reviewee2 = peewee.TextField()

class Meta:
indexes = ((('assignment', 'reviewer'), True),)


if __name__ == '__main__':
DB.create_tables(BaseModel.__subclasses__())
13 changes: 13 additions & 0 deletions denis/initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import sys

import config
import db
import mailman.db
import orbit.db

Expand Down Expand Up @@ -135,6 +136,18 @@ def generate_peer_review_email(assignment, review_table):
for j in range(-min(len(students_who_submitted), 3), 0)]
for i in range(len(students_who_submitted))]


try:
with db.DB.atomic():
db.PeerReviewAssignment.insert_many(
[{'assignment': assignment,
'reviewer': reviewer,
'reviewee1': reviewee1,
'reviewee2': reviewee2}
for (reviewer, reviewee1, reviewee2) in reviews]).execute()
except db.peewee.IntegrityError as e:
print(e)

# To make it easier for the student to find their row, we can sort the
# list. This will alphabetize based on the first column (and only the
# first column because we know that each row has a unique value)
Expand Down