From f18118020cd42784bb2db9db2097e69df6bf5eb7 Mon Sep 17 00:00:00 2001 From: Correl Roush Date: Wed, 25 Aug 2010 23:43:19 -0400 Subject: [PATCH] Views --- cards/__init__.py | 0 cards/models.py | 3 ++ cards/tests.py | 23 +++++++++++ cards/views.py | 8 ++++ decks/views.py | 11 +++++- settings.py | 5 ++- templates/cards/view.html | 80 ++++++++++++++++++++++++++++++++++++++ templates/decks/index.html | 6 +++ urls.py | 2 + 9 files changed, 135 insertions(+), 3 deletions(-) create mode 100755 cards/__init__.py create mode 100755 cards/models.py create mode 100755 cards/tests.py create mode 100755 cards/views.py create mode 100755 templates/cards/view.html create mode 100755 templates/decks/index.html diff --git a/cards/__init__.py b/cards/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/cards/models.py b/cards/models.py new file mode 100755 index 0000000..71a8362 --- /dev/null +++ b/cards/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/cards/tests.py b/cards/tests.py new file mode 100755 index 0000000..2247054 --- /dev/null +++ b/cards/tests.py @@ -0,0 +1,23 @@ +""" +This file demonstrates two different styles of tests (one doctest and one +unittest). These will both pass when you run "manage.py test". + +Replace these with more appropriate tests for your application. +""" + +from django.test import TestCase + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.failUnlessEqual(1 + 1, 2) + +__test__ = {"doctest": """ +Another way to test that 1 + 1 is equal to 2. + +>>> 1 + 1 == 2 +True +"""} + diff --git a/cards/views.py b/cards/views.py new file mode 100755 index 0000000..0ea2027 --- /dev/null +++ b/cards/views.py @@ -0,0 +1,8 @@ +# Create your views here. +from django.shortcuts import render_to_response +import mtgweb.lib.mtg.database as database + +def display(request, name): + db = database.TextDB('/home/correlr/code/mtgweb/lib/mtg/db.txt') + card = db.getCard(name.replace('_', ' ').strip()) + return render_to_response('cards/view.html', {'card': card}) diff --git a/decks/views.py b/decks/views.py index 60f00ef..b22fe02 100755 --- a/decks/views.py +++ b/decks/views.py @@ -1 +1,10 @@ -# Create your views here. +from django.shortcuts import render_to_response +import mtgweb.lib.mtg.mtg as mtg +import mtgweb.lib.mtg.database as database + +def index(request): + db = database.TextDB('mtgweb/lib/mtg/db.txt') + deck = mtg.Deck() + print db.getCard('Forest') + deck.load('mtgweb/lib/mtg/decks/WhiteBeast.txt', db) + return render_to_response('decks/index.html', {'deck': deck}) diff --git a/settings.py b/settings.py index 032d337..4aa4bde 100755 --- a/settings.py +++ b/settings.py @@ -11,8 +11,8 @@ MANAGERS = ADMINS DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. + 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. + 'NAME': 'mtg.db', # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. @@ -81,6 +81,7 @@ TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. + '/home/correlr/code/mtgweb/templates', ) INSTALLED_APPS = ( diff --git a/templates/cards/view.html b/templates/cards/view.html new file mode 100755 index 0000000..1456bb1 --- /dev/null +++ b/templates/cards/view.html @@ -0,0 +1,80 @@ + + + Card: {{ card.name }} + + + +
+
+ {{ card.name|title }} + {% if card.cost %}{{ card.cost }}{% endif %} +
+
+
+ + {{ card.type|title }} + {% if card.attributes %} + — + {{ card.attributes|join:" "|title }} + {% endif %} + + + {% for key, rarity in card.rarities.items %} + {% if key == card.rarity %}{{ rarity }}{% endif %} + {% endfor %} + +
+
+
    + {% for ability in card.text %} +
  • {{ ability }}
  • + {% endfor %} +
+
+
+ + diff --git a/templates/decks/index.html b/templates/decks/index.html new file mode 100755 index 0000000..2405b47 --- /dev/null +++ b/templates/decks/index.html @@ -0,0 +1,6 @@ + + +
foobar
+        
+ + diff --git a/urls.py b/urls.py index f96352d..7622031 100755 --- a/urls.py +++ b/urls.py @@ -7,6 +7,8 @@ from django.conf.urls.defaults import * urlpatterns = patterns('', # Example: # (r'^mtgweb/', include('mtgweb.foo.urls')), + (r'^cards/(?P.*?)/$', 'mtgweb.cards.views.display'), + (r'^decks/$', 'mtgweb.decks.views.index'), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: