From 2aec53aa83b8cfa0636306ac07aff7af576221a4 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Fri, 6 Jan 2012 19:50:23 -0500 Subject: [PATCH 1/3] New-style classes --- courseware/capa_problem.py | 2 +- courseware/x_module.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/courseware/capa_problem.py b/courseware/capa_problem.py index 97c09fa2b5..f635470bbb 100644 --- a/courseware/capa_problem.py +++ b/courseware/capa_problem.py @@ -13,7 +13,7 @@ def strip_dict(d): (type(d[k]) == float or type(d[k]) == int) ]) return d -class LoncapaProblem(): +class LoncapaProblem(object): def get_state(self): ''' Stored per-user session data neeeded to: 1) Recreate the problem diff --git a/courseware/x_module.py b/courseware/x_module.py index 9773bf74af..c9ece2816f 100644 --- a/courseware/x_module.py +++ b/courseware/x_module.py @@ -1,4 +1,4 @@ -class XModule: +class XModule(object): ''' Implements a generic learning module. Initialized on access with __init__, first time with state=None, and then with state From 1968d520c238093d079e55807b91675e1e216176 Mon Sep 17 00:00:00 2001 From: Bridger Maxwell Date: Sun, 8 Jan 2012 02:19:23 -0500 Subject: [PATCH 2/3] Moving SimpleWiki templates to templates/ and using Mako template format. --- simplewiki/templates/simplewiki_base.html | 238 ------------------ simplewiki/templates/simplewiki_create.html | 16 -- simplewiki/templates/simplewiki_edit.html | 17 -- simplewiki/templates/simplewiki_error.html | 98 -------- simplewiki/templates/simplewiki_history.html | 57 ----- .../templates/simplewiki_searchresults.html | 21 -- .../simplewiki_updateprogressbar.html | 32 --- simplewiki/templates/simplewiki_view.html | 10 - simplewiki/views.py | 120 +++++---- 9 files changed, 78 insertions(+), 531 deletions(-) delete mode 100644 simplewiki/templates/simplewiki_base.html delete mode 100644 simplewiki/templates/simplewiki_create.html delete mode 100644 simplewiki/templates/simplewiki_edit.html delete mode 100644 simplewiki/templates/simplewiki_error.html delete mode 100644 simplewiki/templates/simplewiki_history.html delete mode 100644 simplewiki/templates/simplewiki_searchresults.html delete mode 100644 simplewiki/templates/simplewiki_updateprogressbar.html delete mode 100644 simplewiki/templates/simplewiki_view.html diff --git a/simplewiki/templates/simplewiki_base.html b/simplewiki/templates/simplewiki_base.html deleted file mode 100644 index 7df17b695e..0000000000 --- a/simplewiki/templates/simplewiki_base.html +++ /dev/null @@ -1,238 +0,0 @@ -{% load i18n simplewiki_utils %} - - - -{{ wiki_title }} - - - - - - - - - - - - - - - -{% block wiki_head %} -{% endblock %} - - - - - - - -

{% block wiki_page_title %}{% endblock %}

-
- -{% block wiki_panel %} - -
- -
-
-
-
-
-
- - -

- - {% if wiki_article %} -
-
- - {% endif %} - - -

- {% if wiki_article %} - {% if wiki_article.locked %} -

{% trans "This article has been locked" %}

- {% endif %} -

- {% trans "Last modified" %}: {{ wiki_article.modified_on|date }}, {{ wiki_article.modified_on|time }} -

- {% endif %} -
- -
- -
- -{% endblock %} - -{% block wiki_body %} - -{% endblock %} - -














- - - diff --git a/simplewiki/templates/simplewiki_create.html b/simplewiki/templates/simplewiki_create.html deleted file mode 100644 index b9b6eabedb..0000000000 --- a/simplewiki/templates/simplewiki_create.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} -Create article -{% endblock %} -{% block wiki_body %} -
{% csrf_token %} - - {{ wiki_form }} - - - -
-
-
-{% endblock %} diff --git a/simplewiki/templates/simplewiki_edit.html b/simplewiki/templates/simplewiki_edit.html deleted file mode 100644 index b0a7766d5d..0000000000 --- a/simplewiki/templates/simplewiki_edit.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} - {{wiki_article.title}} -{% endblock %} - -{% block wiki_body %} -
{% csrf_token %} - - {{ wiki_form }} - - - -
-
-
-{% endblock %} diff --git a/simplewiki/templates/simplewiki_error.html b/simplewiki/templates/simplewiki_error.html deleted file mode 100644 index 7b7fb9bbe7..0000000000 --- a/simplewiki/templates/simplewiki_error.html +++ /dev/null @@ -1,98 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} -Oops... -{% endblock %} - -{% block wiki_body %} -
-{{ wiki_error|safe }} - -{% if wiki_err_notfound %} -{% if wiki_url %} -

-The page you requested could not be found. -Click here to create it. -

-{% else %} -

-Or maybe rather: Congratulations! It seems that there's no root -article, which is probably because you just installed simple-wiki -and your installation is working. Now you can create the root article. -Click here to create it. -

-{% endif %} -{% else %} - -{% if wiki_err_noparent %} -

-You cannot create this page, because its parent -does not exist. Click here -to create it. -

-{% else %} - -{% if wiki_err_keyword %} -

-The page you're trying to create {{wiki_url}} starts with _, which is reserved for internal use. -

-{% else %} - -{% if wiki_err_locked %} -

-The article you are trying to modify is locked. -

-{% else %} - -{% if wiki_err_noread %} -

-You do not have access to read this article. -

-{% else %} - -{% if wiki_err_nowrite %} -

-You do not have access to edit this article. -

-{% else %} - -{% if wiki_err_noanon %} -

-Anonymous attachments are not allowed. Try logging in. -

-{% else %} - -{% if wiki_err_create %} -

-You do not have access to create this article. -

-{% else %} - -{% if wiki_err_encode %} -

-The url you requested could not be handled by the wiki. -Probably you used a bad character in the URL. -Only use digits, English letters, underscore and dash. For instance -/wiki/An_Article-1 -

- - -{% else %} -

-An error has occured. -

- - -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endif %} -{% endif %} - -
-{% endblock %} - diff --git a/simplewiki/templates/simplewiki_history.html b/simplewiki/templates/simplewiki_history.html deleted file mode 100644 index aacbd3b5f6..0000000000 --- a/simplewiki/templates/simplewiki_history.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} - {{ wiki_article.title }} -{% endblock %} -{% block wiki_body %} -
{% csrf_token %} - - - - - - - - - - - {% for revision in wiki_history %} - - - - - - - {% endfor %} - - {% if wiki_prev_page or wiki_next_page %} - - - - - - {% endif %} -
RevisionCommentDiffModified
- - - {% if revision.revision_text %}{{ revision.revision_text}}{% else %}None{% endif %}{% for x in revision.get_diff %}{{x|escape}}
{% endfor %}
{{ revision.get_user}} -
- {{ revision.revision_date|date}} {{ revision.revision_date|time}} -
- {% if wiki_prev_page %} - {% trans "Previous page" %} - {% endif %} - {% if wiki_next_page %} - {% trans "Next page" %} - {% endif %} -
- -
-{% endblock %} diff --git a/simplewiki/templates/simplewiki_searchresults.html b/simplewiki/templates/simplewiki_searchresults.html deleted file mode 100644 index a60487c4ea..0000000000 --- a/simplewiki/templates/simplewiki_searchresults.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} - {% if wiki_search_query %} - {% trans "Search results for" %} '{{ wiki_search_query|escape }}' - {% else %} - {% trans "Displaying all articles" %} - {% endif %} -{% endblock %} - -{% block wiki_body %} - {% for article in wiki_search_results %} - {% if article.get_url %} - {{ article.get_url }}
- {% else %} - /
- {% endif %} - {% empty %} - {% trans "No articles were found!" %} - {% endfor %} -{% endblock %} diff --git a/simplewiki/templates/simplewiki_updateprogressbar.html b/simplewiki/templates/simplewiki_updateprogressbar.html deleted file mode 100644 index 65f455518d..0000000000 --- a/simplewiki/templates/simplewiki_updateprogressbar.html +++ /dev/null @@ -1,32 +0,0 @@ -{% load i18n simplewiki_utils %} - -{% if started %} - -{% else %} -{% if finished %} - -{% else %} -{% if overwrite_warning %} - -{% else %} -{% if too_big %} - -{% else %} - -{% endif %} -{% endif %} -{% endif %} -{% endif %} diff --git a/simplewiki/templates/simplewiki_view.html b/simplewiki/templates/simplewiki_view.html deleted file mode 100644 index 1c480d44fa..0000000000 --- a/simplewiki/templates/simplewiki_view.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "simplewiki_base.html" %} -{% load i18n simplewiki_utils %} -{% block wiki_page_title %} -{{ wiki_article.title }} -{% endblock %} -{% block wiki_body %} -
- {{ wiki_article.current_revision.contents_parsed|safe }} -
-{% endblock %} diff --git a/simplewiki/views.py b/simplewiki/views.py index e4fb0da664..c13a6fc323 100644 --- a/simplewiki/views.py +++ b/simplewiki/views.py @@ -3,7 +3,8 @@ import types from django.core.urlresolvers import get_callable from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponseServerError, HttpResponseForbidden, HttpResponseNotAllowed from django.utils import simplejson -from django.shortcuts import get_object_or_404, render_to_response +from djangomako.shortcuts import render_to_response, render_to_string +from django.shortcuts import get_object_or_404 from django.template import RequestContext, Context, loader from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse @@ -11,6 +12,38 @@ from django.contrib.auth.decorators import login_required from django.db.models import Q from django.conf import settings from django.shortcuts import redirect +from django.core.context_processors import csrf + +from django.template import Context +from django.http import HttpResponse + +import djangomako.middleware +from mako.template import Template +from mako.lookup import TemplateLookup + + +# def render_to_string(template_name, dictionary, context_instance=None): +# context_instance = context_instance or Context(dictionary) +# # add dictionary to context_instance +# context_instance.update(dictionary or {}) +# # collapse context_instance to a single dictionary for mako +# context_dictionary = {} +# for d in context_instance: +# context_dictionary.update(d) +# # fetch and render template +# #template = djangomako.middleware.lookup.get_template(template_name) +# mylookup = TemplateLookup('/Users/bridger/Development/mitx_all/templates/') +# template = Template(filename='/Users/bridger/Development/mitx_all/templates/' + template_name, strict_undefined = True, lookup=mylookup) +# return template.render(**context_dictionary) +# +# def render_to_response(template_name, dictionary, context_instance=None, **kwargs): +# """ +# Returns a HttpResponse whose content is filled with the result of calling +# lookup.get_template(args[0]).render with the passed arguments. +# """ +# return HttpResponse(render_to_string(template_name, dictionary, context_instance), **kwargs) + + from models import * from settings import * @@ -26,11 +59,12 @@ def view(request, wiki_url): perm_err = check_permissions(request, article, check_read=True) if perm_err: return perm_err - c = RequestContext(request, {'wiki_article': article, - 'wiki_write': article.can_write_l(request.user), - 'wiki_attachments_write': article.can_attach(request.user), - } ) - return render_to_response('simplewiki_view.html', c) + d = {'wiki_article': article, + 'wiki_write': article.can_write_l(request.user), + 'wiki_attachments_write': article.can_attach(request.user), + } + + return render_to_response('simplewiki_view.html', d) def root_redirect(request): """ @@ -62,9 +96,9 @@ def create(request, wiki_url): url_path = get_url_path(wiki_url) if url_path != [] and url_path[0].startswith('_'): - c = RequestContext(request, {'wiki_err_keyword': True, - 'wiki_url': '/'.join(url_path) }) - return render_to_response('simplewiki_error.html', c) + d = {'wiki_err_keyword': True, + 'wiki_url': '/'.join(url_path) } + return render_to_response('simplewiki_error.html', d) # Lookup path try: @@ -76,9 +110,9 @@ def create(request, wiki_url): path = Article.get_url_reverse(url_path[:-1], root) if not path: - c = RequestContext(request, {'wiki_err_noparent': True, - 'wiki_url_parent': '/'.join(url_path[:-1]) }) - return render_to_response('simplewiki_error.html', c) + d = {'wiki_err_noparent': True, + 'wiki_url_parent': '/'.join(url_path[:-1]) } + return render_to_response('simplewiki_error.html', d) perm_err = check_permissions(request, path[-1], check_locked=False, check_write=True) if perm_err: @@ -119,11 +153,12 @@ def create(request, wiki_url): f = CreateArticleForm(initial={'title':request.GET.get('wiki_article_name', url_path[-1]), 'contents':_('Headline\n===\n\n')}) - c = RequestContext(request, {'wiki_form': f, - 'wiki_write': True, - }) + d = {'wiki_form': f, + 'wiki_write': True, + } + d.update(csrf(request)) - return render_to_response('simplewiki_create.html', c) + return render_to_response('simplewiki_create.html', d) def edit(request, wiki_url): if not request.user.is_authenticated(): @@ -160,13 +195,14 @@ def edit(request, wiki_url): return HttpResponseRedirect(reverse('wiki_view', args=(article.get_url(),))) else: f = EditForm({'contents': article.current_revision.contents, 'title': article.title}) - c = RequestContext(request, {'wiki_form': f, - 'wiki_write': True, - 'wiki_article': article, - 'wiki_attachments_write': article.can_attach(request.user), - }) + d = {'wiki_form': f, + 'wiki_write': True, + 'wiki_article': article, + 'wiki_attachments_write': article.can_attach(request.user), + } + d.update(csrf(request)) - return render_to_response('simplewiki_edit.html', c) + return render_to_response('simplewiki_edit.html', d) def history(request, wiki_url, page=1): if not request.user.is_authenticated(): @@ -211,15 +247,16 @@ def history(request, wiki_url, page=1): next_page = p + 1 if page_count > p else None prev_page = p - 1 if p > 1 else None - c = RequestContext(request, {'wiki_page': p, - 'wiki_next_page': next_page, - 'wiki_prev_page': prev_page, - 'wiki_write': article.can_write_l(request.user), - 'wiki_attachments_write': article.can_attach(request.user), - 'wiki_article': article, - 'wiki_history': history[beginItem:beginItem+page_size],}) + d = {'wiki_page': p, + 'wiki_next_page': next_page, + 'wiki_prev_page': prev_page, + 'wiki_write': article.can_write_l(request.user), + 'wiki_attachments_write': article.can_attach(request.user), + 'wiki_article': article, + 'wiki_history': history[beginItem:beginItem+page_size],} + d.update(csrf(request)) - return render_to_response('simplewiki_history.html', c) + return render_to_response('simplewiki_history.html', d) def search_articles(request, wiki_url): if not request.user.is_authenticated(): @@ -251,9 +288,9 @@ def search_articles(request, wiki_url): if results.count() == 1: return HttpResponseRedirect(reverse('wiki_view', args=(results[0].get_url(),))) else: - c = RequestContext(request, {'wiki_search_results': results, - 'wiki_search_query': querystring}) - return render_to_response('simplewiki_searchresults.html', c) + d = {'wiki_search_results': results, + 'wiki_search_query': querystring} + return render_to_response('simplewiki_searchresults.html', d) return view(request, wiki_url) @@ -344,15 +381,14 @@ def random_article(request, wiki_url): def encode_err(request, url): return render_to_response('simplewiki_error.html', - RequestContext(request, {'wiki_err_encode': True})) + {'wiki_err_encode': True}) def not_found(request, wiki_url): if not request.user.is_authenticated(): return redirect('/') """Generate a NOT FOUND message for some URL""" - return render_to_response('simplewiki_error.html', - RequestContext(request, {'wiki_err_notfound': True, - 'wiki_url': wiki_url})) + return render_to_response('simplewiki_error.html', {'wiki_err_notfound': True, + 'wiki_url': wiki_url}) def get_url_path(url): """Return a list of all actual elements of a url, safely ignoring @@ -392,15 +428,15 @@ def check_permissions(request, article, check_read=False, check_write=False, che locked_err = check_locked and article.locked if read_err or write_err or locked_err: - c = RequestContext(request, {'wiki_article': article, - 'wiki_err_noread': read_err, - 'wiki_err_nowrite': write_err, - 'wiki_err_locked': locked_err,}) + d = {'wiki_article': article, + 'wiki_err_noread': read_err, + 'wiki_err_nowrite': write_err, + 'wiki_err_locked': locked_err,} # TODO: Make this a little less jarring by just displaying an error # on the current page? (no such redirect happens for an anon upload yet) # benjaoming: I think this is the nicest way of displaying an error, but # these errors shouldn't occur, but rather be prevented on the other pages. - return render_to_response('simplewiki_error.html', c) + return render_to_response('simplewiki_error.html', d) else: return None From 5d3d5489ddba4abfd0e36dd17ef8e4d93d91845e Mon Sep 17 00:00:00 2001 From: Bridger Maxwell Date: Sun, 8 Jan 2012 04:54:08 -0500 Subject: [PATCH 3/3] Fixed more bugs with simplewiki template conversion. Now working as they originally were. --- simplewiki/views.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/simplewiki/views.py b/simplewiki/views.py index c13a6fc323..1eb018768d 100644 --- a/simplewiki/views.py +++ b/simplewiki/views.py @@ -21,30 +21,6 @@ import djangomako.middleware from mako.template import Template from mako.lookup import TemplateLookup - -# def render_to_string(template_name, dictionary, context_instance=None): -# context_instance = context_instance or Context(dictionary) -# # add dictionary to context_instance -# context_instance.update(dictionary or {}) -# # collapse context_instance to a single dictionary for mako -# context_dictionary = {} -# for d in context_instance: -# context_dictionary.update(d) -# # fetch and render template -# #template = djangomako.middleware.lookup.get_template(template_name) -# mylookup = TemplateLookup('/Users/bridger/Development/mitx_all/templates/') -# template = Template(filename='/Users/bridger/Development/mitx_all/templates/' + template_name, strict_undefined = True, lookup=mylookup) -# return template.render(**context_dictionary) -# -# def render_to_response(template_name, dictionary, context_instance=None, **kwargs): -# """ -# Returns a HttpResponse whose content is filled with the result of calling -# lookup.get_template(args[0]).render with the passed arguments. -# """ -# return HttpResponse(render_to_string(template_name, dictionary, context_instance), **kwargs) - - - from models import * from settings import *