Skip to content

Commit

Permalink
Modernize ORA, commit 2 of 2
Browse files Browse the repository at this point in the history
Code changes needed to work with the upgraded dependencies from the
previous commit.
  • Loading branch information
Eric Fischer committed Aug 2, 2017
1 parent 0060509 commit 3e13d27
Show file tree
Hide file tree
Showing 123 changed files with 687 additions and 1,929 deletions.
48 changes: 4 additions & 44 deletions openassessment/assessment/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@
import json

from django.contrib import admin
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy
from django.utils import html

from openassessment.assessment.models import (
Assessment, AssessmentFeedback, PeerWorkflow, PeerWorkflowItem, Rubric,
AIGradingWorkflow, AITrainingWorkflow, AIClassifierSet, AIClassifier
)
from openassessment.assessment.models import Assessment, AssessmentFeedback, PeerWorkflow, PeerWorkflowItem, Rubric
from openassessment.assessment.serializers import RubricSerializer


Expand Down Expand Up @@ -92,7 +89,7 @@ def rubric_link(self, assessment_obj):
"""
Returns the rubric link for this assessment.
"""
url = reverse(
url = reverse_lazy(
'admin:assessment_rubric_change',
args=[assessment_obj.rubric.id]
)
Expand Down Expand Up @@ -141,7 +138,7 @@ def assessments_by(self, assessment_feedback):
"""
links = [
u'<a href="{}">{}</a>'.format(
reverse('admin:assessment_assessment_change', args=[asmt.id]),
reverse_lazy('admin:assessment_assessment_change', args=[asmt.id]),
html.escape(asmt.scorer_id)
)
for asmt in assessment_feedback.assessments.all()
Expand All @@ -150,44 +147,7 @@ def assessments_by(self, assessment_feedback):
assessments_by.allow_tags = True


class AIGradingWorkflowAdmin(admin.ModelAdmin):
"""
Django admin model for AIGradingWorkflows.
"""
list_display = ('uuid', 'submission_uuid')
search_fields = ('uuid', 'submission_uuid', 'student_id', 'item_id', 'course_id')
readonly_fields = ('uuid', 'submission_uuid', 'student_id', 'item_id', 'course_id')


class AITrainingWorkflowAdmin(admin.ModelAdmin):
"""
Django admin model for AITrainingWorkflows.
"""
list_display = ('uuid',)
search_fields = ('uuid', 'course_id', 'item_id',)
readonly_fields = ('uuid', 'course_id', 'item_id',)


class AIClassifierInline(admin.TabularInline):
"""
Django admin model for AIClassifiers.
"""
model = AIClassifier


class AIClassifierSetAdmin(admin.ModelAdmin):
"""
Django admin model for AICLassifierSets.
"""
list_display = ('id',)
search_fields = ('id',)
inlines = [AIClassifierInline]


admin.site.register(Rubric, RubricAdmin)
admin.site.register(PeerWorkflow, PeerWorkflowAdmin)
admin.site.register(Assessment, AssessmentAdmin)
admin.site.register(AssessmentFeedback, AssessmentFeedbackAdmin)
admin.site.register(AIGradingWorkflow, AIGradingWorkflowAdmin)
admin.site.register(AITrainingWorkflow, AITrainingWorkflowAdmin)
admin.site.register(AIClassifierSet, AIClassifierSetAdmin)
23 changes: 9 additions & 14 deletions openassessment/assessment/api/peer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,17 @@
"""
import logging
from django.utils import timezone

from django.db import DatabaseError, IntegrityError, transaction
from dogapi import dog_stats_api
from django.utils import timezone

from openassessment.assessment.models import (
Assessment, AssessmentFeedback, AssessmentPart,
InvalidRubricSelection, PeerWorkflow, PeerWorkflowItem,
)
from openassessment.assessment.serializers import (
AssessmentFeedbackSerializer, RubricSerializer,
full_assessment_dict, rubric_from_dict, serialize_assessments,
InvalidRubric
)
from openassessment.assessment.errors import (
PeerAssessmentRequestError, PeerAssessmentWorkflowError, PeerAssessmentInternalError
)
from dogapi import dog_stats_api
from openassessment.assessment.errors import (PeerAssessmentInternalError, PeerAssessmentRequestError,
PeerAssessmentWorkflowError)
from openassessment.assessment.models import (Assessment, AssessmentFeedback, AssessmentPart, InvalidRubricSelection,
PeerWorkflow, PeerWorkflowItem)
from openassessment.assessment.serializers import (AssessmentFeedbackSerializer, InvalidRubric, RubricSerializer,
full_assessment_dict, rubric_from_dict, serialize_assessments)
from submissions import api as sub_api

logger = logging.getLogger("openassessment.assessment.api.peer")
Expand Down
19 changes: 7 additions & 12 deletions openassessment/assessment/api/self.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,15 @@
Public interface for self-assessment.
"""
import logging
from django.db import DatabaseError, transaction
from dogapi import dog_stats_api

from submissions.api import get_submission_and_student, SubmissionNotFoundError
from openassessment.assessment.serializers import (
InvalidRubric, full_assessment_dict, rubric_from_dict, serialize_assessments
)
from openassessment.assessment.models import (
Assessment, AssessmentPart, InvalidRubricSelection
)
from openassessment.assessment.errors import (
SelfAssessmentRequestError, SelfAssessmentInternalError
)
from django.db import DatabaseError, transaction

from dogapi import dog_stats_api
from openassessment.assessment.errors import SelfAssessmentInternalError, SelfAssessmentRequestError
from openassessment.assessment.models import Assessment, AssessmentPart, InvalidRubricSelection
from openassessment.assessment.serializers import (InvalidRubric, full_assessment_dict, rubric_from_dict,
serialize_assessments)
from submissions.api import SubmissionNotFoundError, get_submission_and_student

# Assessments are tagged as "self-evaluation"
SELF_TYPE = "SE"
Expand Down
18 changes: 4 additions & 14 deletions openassessment/assessment/api/staff.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,15 @@
Public interface for staff grading, used by students/course staff.
"""
import logging

from django.db import DatabaseError, transaction
from django.utils.timezone import now
from dogapi import dog_stats_api

from openassessment.assessment.errors import StaffAssessmentInternalError, StaffAssessmentRequestError
from openassessment.assessment.models import Assessment, AssessmentPart, InvalidRubricSelection, StaffWorkflow
from openassessment.assessment.serializers import InvalidRubric, full_assessment_dict, rubric_from_dict
from submissions import api as submissions_api

from openassessment.assessment.models import (
Assessment, AssessmentFeedback, AssessmentPart,
InvalidRubricSelection, StaffWorkflow,
)
from openassessment.assessment.serializers import (
AssessmentFeedbackSerializer, RubricSerializer,
full_assessment_dict, rubric_from_dict, serialize_assessments,
InvalidRubric
)
from openassessment.assessment.errors import (
StaffAssessmentRequestError, StaffAssessmentInternalError
)

logger = logging.getLogger("openassessment.assessment.api.staff")

STAFF_TYPE = "ST"
Expand Down
18 changes: 7 additions & 11 deletions openassessment/assessment/api/student_training.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,15 @@
"""
import logging
from django.utils.translation import ugettext as _

from django.db import DatabaseError
from submissions import api as sub_api
from openassessment.assessment.models import StudentTrainingWorkflow, InvalidRubricSelection
from openassessment.assessment.serializers import (
deserialize_training_examples, serialize_training_example,
validate_training_example_format,
InvalidTrainingExample, InvalidRubric
)
from openassessment.assessment.errors import (
StudentTrainingRequestError, StudentTrainingInternalError
)
from django.utils.translation import ugettext as _

from openassessment.assessment.errors import StudentTrainingInternalError, StudentTrainingRequestError
from openassessment.assessment.models import InvalidRubricSelection, StudentTrainingWorkflow
from openassessment.assessment.serializers import (InvalidRubric, InvalidTrainingExample, deserialize_training_examples,
serialize_training_example, validate_training_example_format)
from submissions import api as sub_api

logger = logging.getLogger(__name__)

Expand Down
3 changes: 1 addition & 2 deletions openassessment/assessment/data_conversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
Data Conversion utility methods for handling assessment data transformations.
"""
import json


def update_training_example_answer_format(answer):
Expand All @@ -14,7 +13,7 @@ def update_training_example_answer_format(answer):
Returns:
dict
"""
if isinstance(answer, unicode) or isinstance(answer, str):
if isinstance(answer, (str, unicode)):
return {
'parts': [
{'text': answer}
Expand Down
1 change: 0 additions & 1 deletion openassessment/assessment/errors/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@
from .self import *
from .staff import *
from .student_training import *
from .ai import *
2 changes: 1 addition & 1 deletion openassessment/assessment/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# pylint: skip-file
from __future__ import unicode_literals

from django.db import models, migrations
from django.db import migrations, models
import django.utils.timezone


Expand Down
1 change: 0 additions & 1 deletion openassessment/assessment/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@
from .peer import *
from .training import *
from .student_training import *
from .ai import *
from .staff import *
1 change: 0 additions & 1 deletion openassessment/assessment/models/ai.py

This file was deleted.

7 changes: 4 additions & 3 deletions openassessment/assessment/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,19 @@
./manage.py schemamigration openassessment.assessment --auto
"""
import math
from collections import defaultdict
from copy import deepcopy
from hashlib import sha1
import json
import logging
import math

from lazy import lazy

from django.core.cache import cache
from django.db import models
from django.utils.timezone import now
from lazy import lazy

import logging
logger = logging.getLogger("openassessment.assessment.models")


Expand Down
8 changes: 4 additions & 4 deletions openassessment/assessment/models/peer.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@
./manage.py schemamigration openassessment.assessment --auto
"""
import random
from datetime import timedelta
import logging
import random

from django.db import models, DatabaseError
from django.db import DatabaseError, models
from django.utils.timezone import now

from openassessment.assessment.errors import PeerAssessmentInternalError, PeerAssessmentWorkflowError
from openassessment.assessment.models.base import Assessment
from openassessment.assessment.errors import PeerAssessmentWorkflowError, PeerAssessmentInternalError

import logging
logger = logging.getLogger("openassessment.assessment.models")


Expand Down
3 changes: 1 addition & 2 deletions openassessment/assessment/models/staff.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
"""
from datetime import timedelta

from django.db import models, DatabaseError
from django.db import DatabaseError, models
from django.utils.timezone import now

from openassessment.assessment.models.base import Assessment
from openassessment.assessment.errors import StaffAssessmentInternalError


Expand Down
4 changes: 3 additions & 1 deletion openassessment/assessment/models/student_training.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
"""
Django models specific to the student training assessment type.
"""
from django.db import models, transaction, IntegrityError
from django.db import IntegrityError, models, transaction
from django.utils import timezone

from submissions import api as sub_api

from .training import TrainingExample


Expand Down
6 changes: 4 additions & 2 deletions openassessment/assessment/models/training.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
"""
Django models for training (both student and AI).
"""
import json
from hashlib import sha1
import json

from django.core.cache import cache
from django.db import models
from .base import Rubric, CriterionOption

from .base import CriterionOption, Rubric


class TrainingExample(models.Model):
Expand Down
13 changes: 6 additions & 7 deletions openassessment/assessment/serializers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@
from copy import deepcopy
import logging

from django.core.cache import cache
from rest_framework import serializers
from rest_framework.fields import IntegerField, DateTimeField
from openassessment.assessment.models import (
Assessment, AssessmentPart, Criterion, CriterionOption, Rubric,
)
from rest_framework.fields import DateTimeField, IntegerField

from django.core.cache import cache

from openassessment.assessment.models import Assessment, AssessmentPart, Criterion, CriterionOption, Rubric

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -211,8 +210,8 @@ def full_assessment_dict(assessment, rubric_dict=None):
# `CriterionOption` again, we simply index into the places we expect them to
# be from the big, saved `Rubric` serialization.
parts = []
for part in assessment.parts.all().select_related("criterion", "option"):
criterion_dict = rubric_dict["criteria"][part.criterion.order_num]
for part in assessment.parts.order_by('criterion__order_num').all().select_related("criterion", "option"):
criterion_dict = dict(rubric_dict["criteria"][part.criterion.order_num])
options_dict = None
if part.option is not None:
options_dict = criterion_dict["options"][part.option.order_num]
Expand Down
8 changes: 4 additions & 4 deletions openassessment/assessment/serializers/peer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
Serializers specific to peer assessment.
"""
from rest_framework import serializers

from openassessment.assessment.models import (AssessmentFeedback, AssessmentFeedbackOption, PeerWorkflow,
PeerWorkflowItem)

from .base import AssessmentSerializer
from openassessment.assessment.models import (
AssessmentFeedback, AssessmentFeedbackOption,
PeerWorkflow, PeerWorkflowItem
)


class AssessmentFeedbackOptionSerializer(serializers.ModelSerializer):
Expand Down
8 changes: 5 additions & 3 deletions openassessment/assessment/serializers/training.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
Serializers for the training assessment type.
"""
from django.core.cache import cache
from django.db import transaction, IntegrityError
from openassessment.assessment.models import TrainingExample
from django.db import IntegrityError, transaction

from openassessment.assessment.data_conversion import update_training_example_answer_format
from .base import rubric_from_dict, RubricSerializer
from openassessment.assessment.models import TrainingExample

from .base import RubricSerializer, rubric_from_dict


class InvalidTrainingExample(Exception):
Expand Down
Loading

0 comments on commit 3e13d27

Please sign in to comment.