From 9aa27ca03c702f258e0da7438dab4fe4db38befc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Fri, 8 Nov 2013 14:44:58 +0100 Subject: [PATCH] Load exercises once, import when needed --- wtem/admin.py | 6 +----- wtem/forms.py | 8 +------- wtem/models.py | 5 +++++ wtem/views.py | 8 +------- 4 files changed, 8 insertions(+), 19 deletions(-) diff --git a/wtem/admin.py b/wtem/admin.py index dcf4558..5c495ec 100644 --- a/wtem/admin.py +++ b/wtem/admin.py @@ -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] diff --git a/wtem/forms.py b/wtem/forms.py index c0da211..21e2cf2 100644 --- a/wtem/forms.py +++ b/wtem/forms.py @@ -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 diff --git a/wtem/models.py b/wtem/models.py index bef8b7c..1cd87f9 100644 --- a/wtem/models.py +++ b/wtem/models.py @@ -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' diff --git a/wtem/views.py b/wtem/views.py index c49298d..551a781 100644 --- a/wtem/views.py +++ b/wtem/views.py @@ -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': -- 2.20.1