Commit 3c4c4c3f by Stephen Sanchez

Additional cleanup of old prototype.

parent 359462fa
......@@ -2,11 +2,26 @@ from django.db import models
MAX_LENGTH = 1028
class Essay(models.Model):
student_id = models.CharField(max_length=MAX_LENGTH, db_index=True)
problem_id = models.CharField(max_length=MAX_LENGTH, default="")
location_id = models.CharField(max_length=MAX_LENGTH, default="")
course_id = models.CharField(max_length=MAX_LENGTH, default="")
essay_body = models.CharField(max_length=MAX_LENGTH, default="")
grading_type = models.CharField(max_length=MAX_LENGTH, default="")
grades = models.CharField(max_length=MAX_LENGTH, default="")
status = models.CharField(max_length=MAX_LENGTH, default="")
\ No newline at end of file
scoring_type = models.CharField(max_length=MAX_LENGTH, default="")
scores = models.CharField(max_length=MAX_LENGTH, default="")
submitted_date = models.DateTimeField()
class Scoring(models.Model):
points_earned = models.PositiveIntegerField(default=0)
points_possible = models.PositiveIntegerField(default=0)
feedback = models.CharField(max_length=MAX_LENGTH, default="") # TODO how to link to feedback keys?
scored_date = models.DateTimeField()
student_id = models.CharField(max_length=MAX_LENGTH)
score_type = models.CharField(max_length=MAX_LENGTH, default="")
confidence = models.FloatField(default=0.0)
included = models.BooleanField(default=True)
class Feedback(models.Model):
text = models.CharField(max_length=MAX_LENGTH, default="")
scoring = models.CharField(max_length=MAX_LENGTH, default="") # TODO Link to Scoring keys.
from rest_framework import serializers
from models import Essay
class EssaySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Essay
fields = ('student_id', 'problem_id', 'essay_body', 'grades', 'status', 'grading_type')
\ No newline at end of file
from django.conf.urls import patterns, url, include
from rest_framework import routers
router = routers.DefaultRouter()
# Interface for communicating with the Peer Grading Module in LMS.
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^peer_grading/', include('peer_grading.urls')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
)
\ No newline at end of file
"""
Shared services and logic for open ended grading modules.
"""
from rest_framework import serializers
from models import Status
class StatusSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Status
fields = ('student_id', 'problem_id', 'grading_status')
\ No newline at end of file
__author__ = 'stephensanchez'
from django.conf.urls import patterns, url, include
from rest_framework import routers
from views import EssayViewSet, StatusViewSet
router = routers.DefaultRouter()
router.register(r'essay', EssayViewSet)
router.register(r'status', StatusViewSet)
# Interface for communicating with the Peer Grading Module in LMS.
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
)
"""
Interface for all Peer Grading Workflow. Covers all requests made for Peer Grading.
"""
from rest_framework import viewsets, status
from rest_framework.response import Response
from models import Status
from common_grading.models import Essay
from serializers import StatusSerializer
from common_grading.serializers import EssaySerializer
class EssayViewSet(viewsets.ModelViewSet):
queryset = Essay.objects.all()
serializer_class = EssaySerializer
def create(self, request, *args, **kwargs):
"""
......@@ -22,20 +17,7 @@ class EssayViewSet(viewsets.ModelViewSet):
@return: Once an essay has been submitted, the student's status for beginning peer grading should be immediately
returned. See student_status for more information.
"""
# TODO Copied 99% of this from Django REST mixins.py to inject 'peer' to grading_type. Figure out what I actually want...
data = request.DATA.copy()
data['grading_type'] = "peer"
serializer = self.get_serializer(data=data, files=request.FILES)
if serializer.is_valid():
self.pre_save(serializer.object)
self.object = serializer.save(force_insert=True)
self.post_save(self.object, created=True)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED,
headers=headers)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
pass
def retrieve(self, request, *args, **kwargs):
"""
......@@ -73,7 +55,6 @@ class EssayViewSet(viewsets.ModelViewSet):
class StatusViewSet(viewsets.ModelViewSet):
queryset = Status.objects.all()
serializer_class = StatusSerializer
def get(self, request):
"""
......
import logging
from x_module import XModule
from x_module import XBlock
from xmodule.raw_module import RawDescriptor
log = logging.getLogger(__name__)
......@@ -12,7 +12,7 @@ class PeerGradingFields(object):
pass
class PeerGradingModule(PeerGradingFields, XModule):
class PeerGradingModule(PeerGradingFields, XBlock):
_VERSION = 0
......
djangorestframework==2.3.5
\ No newline at end of file
# edX Internal Requirements
# Third Party Requirements
# Test Requirements
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment