From a3914cc1ac833d7caeb33d3cb76874be42bdbeb2 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Wed, 1 Feb 2012 18:18:45 -0500 Subject: [PATCH] course.xml includes work --- auth/models.py | 8 ++++++++ courseware/content_parser.py | 12 +++++++++--- settings_new_askbot.py | 5 +++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/auth/models.py b/auth/models.py index 88cdd2da61..05a9d3028f 100644 --- a/auth/models.py +++ b/auth/models.py @@ -14,6 +14,14 @@ class UserProfile(models.Model): meta = models.TextField(blank=True) # JSON dictionary for future expansion courseware = models.TextField(blank=True, default='course.xml') +# class UserTestGroup(models.Model): +# ''' Group used for user tests. +# E.g. groupname = 'metacognition' and groupsection = ['A','B'] +# ''' +# groupname = models.TextField(blank=True) +# groupsection = models.TextField(blank=True) +# user = models.ManyToManyField(User) + class Registration(models.Model): ''' Allows us to wait for e-mail before user is registered. A registration profile is created when the user creates an diff --git a/courseware/content_parser.py b/courseware/content_parser.py index a783a172a4..ed0489f7f4 100644 --- a/courseware/content_parser.py +++ b/courseware/content_parser.py @@ -3,6 +3,7 @@ import hashlib from lxml import etree from mako.template import Template +from mako.lookup import TemplateLookup try: # This lets us do __name__ == ='__main__' from django.conf import settings @@ -88,12 +89,17 @@ def id_tag(course): else: elem.set('id', fasthash(etree.tostring(elem))) +template_lookup = TemplateLookup(directories = [settings.DATA_DIR], + module_directory = settings.MAKO_MODULE_DIR) + def course_file(user): # TODO: Cache. - filename = settings.DATA_DIR+UserProfile.objects.get(user=user).courseware - data_template = Template(filename=filename) + filename = UserProfile.objects.get(user=user).courseware + data_template = template_lookup.get_template(filename) - tree = etree.XML(data_template.render()) + options = {'dev_content':True} + + tree = etree.XML(data_template.render(**options)) id_tag(tree) return tree diff --git a/settings_new_askbot.py b/settings_new_askbot.py index e95d57e7a3..95b4a79d34 100644 --- a/settings_new_askbot.py +++ b/settings_new_askbot.py @@ -1,5 +1,6 @@ import os import sys +import tempfile import djcelery @@ -134,10 +135,14 @@ TRACK_MAX_EVENT = 1000 MAXLOG = 500 LOG_DIR = "/tmp/" +MAKO_MODULE_DIR = None # Make sure we execute correctly regardless of where we're called from execfile(os.path.join(BASE_DIR, "settings.py")) +if MAKO_MODULE_DIR == None: + MAKO_MODULE_DIR = tempfile.mkdtemp('mako') + # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error.