Load exercises once, import when needed
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Fri, 8 Nov 2013 13:44:58 +0000 (14:44 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 15 Jan 2014 10:18:58 +0000 (11:18 +0100)
wtem/admin.py
wtem/forms.py
wtem/models.py
wtem/views.py

index dcf4558..5c495ec 100644 (file)
@@ -8,14 +8,10 @@ from django.utils import simplejson
 from django.utils.safestring import mark_safe
 from django.core.urlresolvers import reverse
 
-from .models import Submission, Assignment, Attachment
+from .models import Submission, Assignment, Attachment, exercises
 from .middleware import get_current_request
 
 
-f = file(os.path.dirname(__file__) + '/fixtures/exercises.json')
-exercises = simplejson.loads(f.read())
-f.close()
-
 def get_user_exercises(user):
     assignment = Assignment.objects.get(user = user)
     return [e for e in exercises if e['id'] in assignment.exercises]
index c0da211..21e2cf2 100644 (file)
@@ -3,7 +3,7 @@ import os
 from django import forms
 from django.utils import simplejson
 
-from .models import Submission, Attachment
+from .models import Submission, Attachment, exercises
 
 
 class WTEMForm(forms.ModelForm):
@@ -13,12 +13,6 @@ class WTEMForm(forms.ModelForm):
 
     def __init__(self, *args, **kwargs):
         super(WTEMForm, self).__init__(*args, **kwargs)
-
-        ## @@ move this one level up
-        f = file(os.path.dirname(__file__) + '/fixtures/exercises.json')
-        exercises = simplejson.loads(f.read())
-        f.close()
-
         for exercise in exercises:
             if exercise['type'] != 'file_upload':
                 continue
index bef8b7c..1cd87f9 100644 (file)
@@ -1,14 +1,19 @@
 import random
 import string
+import os
 
 from django.db import models
 from django.contrib.auth.models import User
 from django.core.exceptions import ValidationError
+from django.utils import simplejson
 from django.utils.translation import ugettext as _
 from jsonfield import JSONField
 
 from contact.models import Contact
 
+f = file(os.path.dirname(__file__) + '/fixtures/exercises.json')
+exercises = simplejson.loads(f.read())
+f.close()
 
 DEBUG_KEY = '12345'
 
index c49298d..551a781 100644 (file)
@@ -5,7 +5,7 @@ from django.utils import simplejson
 from django.conf import settings
 from django.http import Http404, HttpResponseForbidden
 
-from .models import Submission, DEBUG_KEY
+from .models import Submission, DEBUG_KEY, exercises
 from .forms import WTEMForm
 
 WTEM_CONTEST_STAGE = getattr(settings, 'WTEM_CONTEST_STAGE', 'before')
@@ -33,12 +33,6 @@ def form_during(request, key):
             submission = Submission.create(first_name = 'Debug', last_name = 'Debug', email = 'debug@debug.com', key = DEBUG_KEY)
         else:
             raise Http404
-
-    ## @@ move this out of the view
-    f = file(os.path.dirname(__file__) + '/fixtures/exercises.json')
-    exercises = simplejson.loads(f.read())
-    f.close()
-
     if request.method == 'GET':
         return render(request, 'wtem/main.html', dict(exercises = exercises))
     elif request.method == 'POST':