app/main.py
author Todd Larsen <tlarsen@google.com>
Wed, 15 Oct 2008 17:10:27 +0000
changeset 339 b9be44e09530
parent 324 05e21c089be6
child 684 896672e44e03
permissions -rw-r--r--
Define the Models for implementing Quizzes (collections of Questions) and their Responses (collections of Answers to those Questions). These Models would form the basis of storage for such items as: Terms of Service (Quiz) Question ("I agree...") Response -> Answer (answer to "I agree..." confirmation) solution ("Yes" Answer to the "I agree..." Question) Mentor and Student surveys (Quiz) Questions (including "Pay this student?") Response -> Answers solution ("Yes" Answer to the "Pay this student?" Question) Organization applications Student Proposal review, comment, and scoring system GHOP task tracking (a specific task list item would be a Quiz) Patch by: Todd Larsen Review by: Pawel Solyga, Sverre Rabbelier, Chen Lunpeng Review URL: http://codereviews.googleopensourceprograms.com/1403

#!/usr/bin/python2.5
#
# Copyright 2008 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.

__authors__ = [
  # alphabetical order by last name, please
  '"Augie Fackler" <durin42@gmail.com>',
  ]


import logging
import os
import sys

from google.appengine.ext.webapp import util


# Remove the standard version of Django.
for k in [k for k in sys.modules if k.startswith('django')]:
  del sys.modules[k]

# Force sys.path to have our own directory first, in case we want to import
# from it. This lets us replace the built-in Django
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))

sys.path.insert(0, os.path.abspath('django.zip'))

# Force Django to reload its settings.
from django.conf import settings
settings._target = None

# Must set this env var before importing any part of Django
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
import django.core.signals
import django.db

# Log errors.
def log_exception(*args, **kwds):
  logging.exception('Exception in request:')

# Log all exceptions detected by Django.
django.core.signals.got_request_exception.connect(log_exception)

# Unregister the rollback event handler.
django.core.signals.got_request_exception.disconnect(
    django.db._rollback_on_exception)


def main():
  # Create a Django application for WSGI.
  application = django.core.handlers.wsgi.WSGIHandler()

  # Run the WSGI CGI handler with that application.
  util.run_wsgi_app(application)


if __name__ == '__main__':
  main()