diff --git a/analyzer/models.py b/analyzer/models.py
index d216a8a..9ba2837 100755
--- a/analyzer/models.py
+++ b/analyzer/models.py
@@ -24,6 +24,8 @@ class Card(models.Model, mtg.Card):
def __unicode__(self):
return self.name
+ def get_cost(self):
+ return mtg.ManaCost(self.cost)
class Deck(models.Model):
name = models.CharField(max_length=80)
cards = models.ManyToManyField(Card, through='Included')
diff --git a/decks/views.py b/decks/views.py
index 3bac627..05fab34 100755
--- a/decks/views.py
+++ b/decks/views.py
@@ -2,7 +2,7 @@ from django.http import Http404
from django.shortcuts import render_to_response
from mtgweb.analyzer.models import Deck
from mtgweb.lib.mtg import mtg
-from pygooglechart import PieChart3D
+from pygooglechart import PieChart3D, SimpleLineChart, Axis
def index(request):
decks = Deck.objects.all()
@@ -58,4 +58,5 @@ def detail(request, id):
'deck': deck,
'land_chart': land_chart,
'symbol_chart': symbol_chart,
+ 'ramp_chart': ramp_chart,
'curve': curve})
diff --git a/media/mtg.css b/media/mtg.css
index 8b6478b..e020770 100644
--- a/media/mtg.css
+++ b/media/mtg.css
@@ -7,30 +7,41 @@ h1, h2, h3, h4, h5, h6 {
text-shadow: 2px 2px 2px #999;
}
+#main {
+ width: 990px;
+}
header {
border-bottom: 2px solid #999;
}
#navigation {
- width: 140px;
- position: absolute;
}
#navigation ul {
+ margin: 0px;
padding: 0px;
+ float: left;
+ width: 100%;
+ background-color: #ddd;
+ border-bottom: 1px solid #999;
}
#navigation li {
list-style: none;
+ float: left;
}
-#navigation a {
+#navigation a,
+#navigation a:visited,
+#navigation a:hover {
display: block;
padding: 2px;
- background-color: #ddd;
- border-bottom: 1px solid #999;
+ text-decoration: none;
+ padding-left: 1em;
+ padding-right: 1em;
}
#navigation a:hover {
background-color: #ccc;
}
#content {
- margin-left: 160px;
+ padding-top: 2em;
+ padding-left: 60px;
}
/* Cards and mana symbols */
.mana.symbol {
@@ -65,11 +76,11 @@ header {
background-color: #eee;
padding: 3px;
height: 1em;
+ vertical-align: middle;
}
.card .title .name,
.card .info .type {
font-weight: bold;
- float: left;
text-shadow: 2px 2px 2px #999;
}
.card .title .cost,
@@ -125,3 +136,27 @@ header {
.mana-curve .bar {
background-color: #999;
}
+
+section.mana {
+ width: 500px;
+ position: absolute;
+ margin-left: 430px;
+}
+section.mana section {
+ float: left;
+}
+section.mana section.curve,
+section.mana section.ramp {
+ width: 100%;
+}
+section.mana table {
+ width: 100%;
+}
+section.cards {
+ width: 400px;
+}
+section.cards .card-type {
+ font-weight: bold;
+ text-shadow: 2px 2px 2px #999;
+ list-style: none;
+}
diff --git a/templates/cards/view.html b/templates/cards/view.html
index bd697a0..a927ccd 100644
--- a/templates/cards/view.html
+++ b/templates/cards/view.html
@@ -7,7 +7,9 @@
{{ card.name|title }}
- {% include 'cards/manacost.html' %}
+ {% if cost.converted > 0 %}
+ {% include 'cards/manacost.html' %}
+ {% endif %}
diff --git a/templates/decks/detail.html b/templates/decks/detail.html
index 1675c11..5ae56e5 100755
--- a/templates/decks/detail.html
+++ b/templates/decks/detail.html
@@ -6,24 +6,68 @@
{% block content %}
{{deck}}
-Mana
-Lands
-
-Symbols
-
-Curve
-
- {% for cost, count in curve.items %}
-
- {{ cost }} |
- {{ count }} |
-
- {% endfor %}
-
-Cards
-
- {% for card in deck.included_set.all %}
- - {{card.count}}x {{ card.card }}
- {% endfor %}
-
+
+
+ Cards
+ {% regroup deck.included_set.all by card.type as cards %}
+
+ {% for group in cards %}
+ - {{ group.grouper|title }}
+
+ {% for included in group.list %}
+ -
+
+
+
{{ included.count }}x
+
{{ included.card.name }}
+
{% with included.card.get_cost as cost %}{% if cost.converted > 0 %}{% include 'cards/manacost.html' %}{% endif %}{% endwith %}
+
+
+
+ {% endfor %}
+
+
+ {% endfor %}
+
+
{% endblock %}
diff --git a/templates/main.html b/templates/main.html
index 8c3fcf9..18f9985 100644
--- a/templates/main.html
+++ b/templates/main.html
@@ -6,32 +6,34 @@
{% block title %}MTG Armory{% endblock %}
-
-
-
- {% block content %}
- Welcome to the MTG Armory
-
- Someday this might grow up into yet another deck builder
- site for folks to flock to and keep track of their stuff.
- For now, though, it's just an awful looking dumping ground
- for my own decks and Python experimentation.
-
-
- This whole thing is just an excercise in learning Django
- and HTML5, so don't expect too much out of it. Ever.
-
- {% endblock %}
-
-
+
+
+
+
+ {% block content %}
+ Welcome to the MTG Armory
+
+ Someday this might grow up into yet another deck builder
+ site for folks to flock to and keep track of their stuff.
+ For now, though, it's just an awful looking dumping ground
+ for my own decks and Python experimentation.
+
+
+ This whole thing is just an excercise in learning Django
+ and HTML5, so don't expect too much out of it. Ever.
+
+ {% endblock %}
+
+
+