# HG changeset patch # User Sverre Rabbelier # Date 1252414599 -7200 # Node ID 3fbbb56b79256962ae4843a753409e095081ac42 # Parent e730768e0774436b1dc5acb91d27ed27e5a7a552 Add a view to start conversion tasks diff -r e730768e0774 -r 3fbbb56b7925 app/soc/tasks/convert.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/tasks/convert.py Tue Sep 08 14:56:39 2009 +0200 @@ -0,0 +1,104 @@ +#!/usr/bin/python2.5 +# +# Copyright 2009 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tasks conversion starter. +""" + +__authors__ = [ + '"Sverre Rabbelier" ', + ] + + +from django import http +from django.template import loader + + +def getDjangoURLPatterns(): + """Returns the URL patterns for the view in this module. + """ + + + patterns = [(r'tasks/convert/([a-z]+)$', 'soc.tasks.convert.runner')] + + return patterns + + +class TaskRunner(object): + """Runs one of the supported task starters. + """ + + def __init__(self): + """Initializes the TaskRunner. + """ + + self.options = { + 'program': self.startProgramConversion, + 'organization': self.startOrganizationConversion, + 'student': self.startStudentConversion, + } + + def getOptions(self): + """Returns the supported option types. + """ + + return self.options.keys() + + def __call__(self, request, option): + """Starts the specified task. + """ + + context = { + 'page_name': 'Start conversion job', + } + + fun = self.options.get(option) + if not fun: + template = 'soc/error.html' + context['message'] = 'Uknown option "%s".' % option + else: + template = 'soc/tasks/convert.html' + context['option'] = option + context['success'] = fun(request) + + content = loader.render_to_string(template, dictionary=context) + return http.HttpResponse(content) + + def startProgramConversion(self, request): + """ + """ + + # TODO(ljvderijk): implement this + + return False + + def startOrganizationConversion(self, request): + """ + """ + + # TODO(ljvderijk): implement this + + return False + + def startStudentConversion(self, request): + """ + """ + + # TODO(ljvderijk): implement this + + return False + + +runner = TaskRunner() diff -r e730768e0774 -r 3fbbb56b7925 app/soc/tasks/start.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/tasks/start.py Tue Sep 08 14:56:39 2009 +0200 @@ -0,0 +1,53 @@ +#!/usr/bin/python2.5 +# +# Copyright 2009 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tasks conversion starter. +""" + +__authors__ = [ + '"Sverre Rabbelier" ', + ] + + +from django import http +from django.template import loader + +from soc.tasks import convert + + +def getDjangoURLPatterns(): + """Returns the URL patterns for the view in this module. + """ + + patterns = [(r'tasks/start$', + 'soc.tasks.start.startTasks')] + + return patterns + + +def startTasks(request): + """Presents a view that allows the user to start conversion tasks. + """ + + template = 'soc/tasks/start.html' + + context = { + 'page_name': 'Task starter', + 'options': convert.runner.getOptions(), + } + + content = loader.render_to_string(template, dictionary=context) + return http.HttpResponse(content)