Merge branch 'master' of git.someserver.de:k4ever

This commit is contained in:
theresa 2011-10-14 00:07:29 +02:00
commit 86b25703be
15 changed files with 324 additions and 393 deletions

1
.gitignore vendored
View File

@ -6,5 +6,6 @@
*.bak *.bak
*~ *~
k4ever/k4ever.db k4ever/k4ever.db
k4ever/media/img/
*.kdev4 *.kdev4
.kdev4 .kdev4

View File

@ -16,7 +16,7 @@
inkscape:version="0.48.2 r9819" inkscape:version="0.48.2 r9819"
sodipodi:docname="freitagskasse.svg"> sodipodi:docname="freitagskasse.svg">
<title <title
id="title3609">HOWTO Freitagskasse v3</title> id="title3609">HOWTO Freitagskasse v3.2</title>
<defs <defs
id="defs4"> id="defs4">
<marker <marker
@ -53,9 +53,9 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="0.35" inkscape:zoom="0.7"
inkscape:cx="903.5067" inkscape:cx="67.266124"
inkscape:cy="580.98496" inkscape:cy="265.56241"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
@ -73,7 +73,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>HOWTO Freitagskasse v3</dc:title> <dc:title>HOWTO Freitagskasse v3.2</dc:title>
<dc:creator> <dc:creator>
<cc:Agent> <cc:Agent>
<dc:title>Sebastian Pipping &lt;sebastian@pipping.org&gt;</dc:title> <dc:title>Sebastian Pipping &lt;sebastian@pipping.org&gt;</dc:title>
@ -1054,7 +1054,8 @@
id="rect3535-9" /></flowRegion><flowPara id="rect3535-9" /></flowRegion><flowPara
id="flowPara3537-0">1 Euro</flowPara></flowRoot> </g> id="flowPara3537-0">1 Euro</flowPara></flowRoot> </g>
<g <g
id="g6092"> id="g6092"
transform="translate(-1.09375e-6,0)">
<g <g
id="g4397" id="g4397"
inkscape:label="ink_ext_XXXXXX" inkscape:label="ink_ext_XXXXXX"
@ -1352,7 +1353,7 @@
id="flowPara3537-0-75">10 Euro</flowPara></flowRoot> </g> id="flowPara3537-0-75">10 Euro</flowPara></flowRoot> </g>
<g <g
id="g8994" id="g8994"
transform="translate(-4,0)"> transform="translate(-3.9999988,0)">
<g <g
id="g3261" id="g3261"
inkscape:label="ink_ext_XXXXXX" inkscape:label="ink_ext_XXXXXX"
@ -1545,7 +1546,7 @@
id="flowPara3537-0-75-8">COMMIT</flowPara></flowRoot> </g> id="flowPara3537-0-75-8">COMMIT</flowPara></flowRoot> </g>
<g <g
id="g8958" id="g8958"
transform="translate(-4,0)"> transform="translate(-19.933595,0)">
<g <g
id="g3163" id="g3163"
inkscape:label="ink_ext_XXXXXX" inkscape:label="ink_ext_XXXXXX"
@ -1705,7 +1706,7 @@
height="87.14286" height="87.14286"
width="178.57143" width="178.57143"
id="rect3535-9-1-9" /></flowRegion><flowPara id="rect3535-9-1-9" /></flowRegion><flowPara
id="flowPara3537-0-75-7">UNDO</flowPara></flowRoot> </g> id="flowPara3537-0-75-7">STORNO</flowPara></flowRoot> </g>
<path <path
sodipodi:type="arc" sodipodi:type="arc"
style="color:#000000;fill:#000000;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" style="color:#000000;fill:#000000;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
@ -1714,7 +1715,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,537.71419)" /> transform="translate(188.15166,537.71419)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1724,7 +1725,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,600.26767)" /> transform="translate(188.15166,600.26767)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1734,7 +1735,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,631.83909)" /> transform="translate(188.15166,631.83909)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1744,7 +1745,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,725.05339)" /> transform="translate(188.15166,725.05339)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1754,7 +1755,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,787.91053)" /> transform="translate(188.15166,787.91053)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1764,7 +1765,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,850.19626)" /> transform="translate(188.15166,850.19626)" />
<path <path
sodipodi:type="arc" sodipodi:type="arc"
@ -1774,7 +1775,7 @@
sodipodi:cy="-88.048378" sodipodi:cy="-88.048378"
sodipodi:rx="14.770664" sodipodi:rx="14.770664"
sodipodi:ry="14.770664" sodipodi:ry="14.770664"
d="m -100.22934,-88.048378 a 14.770664,14.770664 0 1 1 -29.54132,0 14.770664,14.770664 0 1 1 29.54132,0 z" d="m -100.22934,-88.048378 c 0,8.157613 -6.61305,14.770664 -14.77066,14.770664 -8.15761,0 -14.77066,-6.613051 -14.77066,-14.770664 0,-8.157613 6.61305,-14.770662 14.77066,-14.770662 8.15761,0 14.77066,6.613049 14.77066,14.770662 z"
transform="translate(188.15166,912.33911)" /> transform="translate(188.15166,912.33911)" />
<flowRoot <flowRoot
xml:space="preserve" xml:space="preserve"
@ -1869,7 +1870,7 @@
id="flowPara7340-8" id="flowPara7340-8"
style="font-size:25px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Sans;-inkscape-font-specification:Sans">3</flowPara></flowRoot> <g style="font-size:25px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Sans;-inkscape-font-specification:Sans">3</flowPara></flowRoot> <g
id="g5930" id="g5930"
transform="translate(0,-0.17575307)"> transform="translate(0,161.9389)">
<flowRoot <flowRoot
transform="translate(244.21428,-195.21975)" transform="translate(244.21428,-195.21975)"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
@ -2121,10 +2122,10 @@
</g> </g>
</g> </g>
<g <g
id="g5984" id="g4416"
transform="translate(0,0.17579772)"> transform="translate(7.1428575,-17.709575)">
<flowRoot <flowRoot
transform="translate(327.00725,-34.511329)" transform="translate(280.76283,145.66447)"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
id="flowRoot3531-9-4" id="flowRoot3531-9-4"
xml:space="preserve"><flowRegion xml:space="preserve"><flowRegion
@ -2134,10 +2135,10 @@
height="62.85717" height="62.85717"
width="264.28571" width="264.28571"
id="rect3535-9-4" /></flowRegion><flowPara id="rect3535-9-4" /></flowRegion><flowPara
id="flowPara3537-0-7">... allein</flowPara></flowRoot> <g id="flowPara3537-0-7">Nur Pfand</flowPara></flowRoot> <g
id="g4215" id="g4215"
inkscape:label="ink_ext_XXXXXX" inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.25,0,0,-1.25,860.81975,863.99507)"> transform="matrix(1.25,0,0,-1.25,853.67689,1044.1709)">
<g <g
id="g4217" id="g4217"
transform="scale(0.1,0.1)"> transform="scale(0.1,0.1)">
@ -2374,7 +2375,8 @@
</g> </g>
</g> </g>
<g <g
id="g6038"> id="g6038"
transform="translate(-2.4999999e-6,-483.00422)">
<flowRoot <flowRoot
transform="translate(248.21819,127.25177)" transform="translate(248.21819,127.25177)"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
@ -2632,7 +2634,8 @@
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /> sodipodi:nodetypes="cc" />
<g <g
id="g5879"> id="g5879"
transform="translate(0,161.9389)">
<g <g
id="g3920" id="g3920"
inkscape:label="ink_ext_XXXXXX" inkscape:label="ink_ext_XXXXXX"

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 158 KiB

View File

@ -146,7 +146,7 @@ class Status:
warn_balance() warn_balance()
print() print()
print(COLOR_SOME + 'Committen nicht vergessen.' + COLOR_RESET) print(COLOR_MUCH + 'Committen nicht vergessen.' + COLOR_RESET)
else: else:
print('Kontostand beträgt: %s%.2f Euro%s' % (COLOR_MUCH, self.balance, COLOR_RESET)) print('Kontostand beträgt: %s%.2f Euro%s' % (COLOR_MUCH, self.balance, COLOR_RESET))
if self.balance < 0: if self.balance < 0:

View File

@ -13,7 +13,7 @@ class DepositCommand(object):
self._difference = amount self._difference = amount
def difference(self): def difference(self):
self._difference return self._difference
def run(self, user_name): def run(self, user_name):
net.deposit(self._difference, net.DEPOSIT_CASH, user_name) net.deposit(self._difference, net.DEPOSIT_CASH, user_name)

BIN
devel/grafiken/deposit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html {% if user.is_authenticated %}class="loggedIn"{% endif %}>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" media="screen" type="text/css" <link rel="stylesheet" media="screen" type="text/css"

View File

@ -0,0 +1,31 @@
{% if buyables %}
{% if removeWrapper == None %}
<table width=100%>
<tbody>
{% endif %}
{% for buyable in buyables %}
<tr>
<td class="productImage">
<a href="/store/show/{{ buyable.buyable__id }}"><img src="{{ MEDIA_URL }}{{ buyable.buyable__image }}" /></a>
</td>
<td class="name"><span>{{ buyable.buyable__name }}</span> ({{ buyable.num_buys }} mal gekauft)</td>
<td>
{% if buyable.buyable__deposit > 0 %}
<a class="buyButton" href="/store/buy/{{ buyable.buyable__id }}" title="Kaufen (Ohne Pfand)"><span>Kaufen (Ohne Pfand)</span></a>
<a class="buyButton includingDeposit" href="/store/buy/{{ buyable.buyable__id }}/with/deposit" title="Kaufen (Mit Pfand)"><span>Kaufen (Mit Pfand)</span></a>
{% if includeDeposit %}
<a class="buyButton onlyDeposit" href="/store/buy/{{ buyable.buyable__id }}/only/deposit" title="Kaufen (Nur Pfand)"><span>Kaufen (Nur Pfand)</span></a>
{% endif %}
{% else %}
<a class="buyButton" href="/store/buy/{{ buyable.buyable__id }}" title="Kaufen"><span>Kaufen</span></a>
{% endif %}
</td>
</tr>
{% endfor %}
{% if removeWrapper == None %}
</tbody>
</table>
{% endif %}
{% else %}
<p>{{ default|default_if_none:"Noch keine gekauft" }}</p>
{% endif %}

View File

@ -1,238 +1,45 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block "content" %} {% block "content" %}
<div style="width:1200px">
{% if allMostDrinks or allMostSnacks %} {% if allMostDrinks or allMostSnacks %}
<table width="100%" class="showitem" style="border-width:0px"> <table class="showitem">
<thead>
<tr> <tr>
<td role="presentation">&nbsp;</td>
<th scope="column">Die beliebtesten Artikel</th>
<th scope="column">Deine Lieblingsartikel</td>
<th scope="column">Zuletzt hattest du</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Getränke</th>
<td> <td>
&nbsp; {% include "main/product_list.html" with buyables=allMostDrinks %}
</td> </td>
<td> <td>
<h1>Die beliebtesten Artikel</h1> {% include "main/product_list.html" with buyables=usersMostDrinks %}
</td> </td>
<td> <td>
<h1>Deine Lieblingsartikel</h1> {% include "main/product_list.html" with buyables=usersLastDrinks %}
</td>
<td>
<h1>Zuletzt hattest du:</h1>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="-moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg)"> <th scope="row">Snacks</th>
<h1 style="vertical-align:top">Getr&auml;nke</h1> <td>
</td> {% include "main/product_list.html" with buyables=allMostSnacks %}
<td style="vertical-align:top">
{% if allMostDrinks %}
<table width=100%>
{% for buyable in allMostDrinks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td> </td>
<td> <td>
<b>{{ buyable.buyable__name }}</b><br/>({{ buyable.num_buys }} mal) {% include "main/product_list.html" with buyables=usersMostSnacks %}
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td>
<td style="vertical-align:top">
{% if usersMostDrinks %}
<table width=100%>
{% for buyable in usersMostDrinks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td> </td>
<td> <td>
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal) {% include "main/product_list.html" with buyables=usersLastSnacks %}
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td>
<td style="vertical-align:top">
{% if usersLastDrinks %}
<table width=100%>
{% for buyable in usersLastDrinks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td>
<td>
<b>{{ buyable.buyable__name }}</b>
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td>
</tr>
<tr>
<th style="-moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg)">
<h1>Snacks</h1>
</th>
<td style="vertical-align:top">
{% if allMostSnacks %}
<table width=100%>
{% for buyable in allMostSnacks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td>
<td>
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal)
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td>
<td style="vertical-align:top">
{% if usersMostSnacks %}
<table width=100%>
{% for buyable in usersMostSnacks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td>
<td>
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal)
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td>
<td style="vertical-align:top">
{% if usersLastSnacks %}
<table width=100%>
{% for buyable in usersLastSnacks %}
<tr>
<td width="80px">
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
</td>
<td>
<b>{{ buyable.buyable__name }}</b>
</td>
<td width="150px">
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
{% if buyable.buyable__deposit > 0 %}
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
{% else %}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
Noch keine gekauft.
{% endif %}
</td> </td>
</tr> </tr>
</tbody>
</table> </table>
{% else %} {% else %}
{{ error }} {{ error }}
Es hat scheinbar noch niemand etwas gekauft. <a href="/store/">Sei der Erste!</a> Es hat scheinbar noch niemand etwas gekauft. <a href="/store/">Sei der Erste!</a>
{% endif %} {% endif %}
</div>
{% comment %}
<div style="width:800px">
{% if usersMostSnacks or usersMostDrinks %}
<h1>Deine Lieblingsartikel</h1>
<table class="showitem" width="100%" style="border-width:0px">
<tr>
<th width="50%">
Getr&auml;nke
</th>
<th width="50%">
Snacks
</th>
</tr>
<tr>
</tr>
</table>
{% else %}
{{ error }}
Wie es aussieht, hast du noch nichts gekauft. <a href="/store/">Das kannst du &auml;ndern!</a>
{% endif %}
</div>
<div style="width:800px">
{% if usersLastSnacks or usersLastDrinks %}
<h1>Du hattest als letztes:</h1>
<table class="showitem" width="100%" style="border-width:0px">
<tr>
<th width="50%">
Getr&auml;nke
</th>
<th width="50%">
Snacks
</th>
</tr>
<tr>
</tr>
</table>
{% else %}
{{ error }}
{% endif %}
</div>
{% endcomment %}
{% endblock %} {% endblock %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,7 +1,8 @@
/* THOSE ARE JUST TEMPORARY, I CHANGE THEM LATER INTO LOCAL RESOURCES */ /* THOSE ARE JUST TEMPORARYLY, I CHANGE THEM LATER INTO LOCAL RESOURCES */
/* OR DOES SHE?! */
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:regular,italic,bold,bolditalic&subset=latin); @import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,600,700);
@import url(http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold&subset=latin); @import url(http://fonts.googleapis.com/css?family=Istok+Web:400,700);
/* jQuery Theme */ /* jQuery Theme */
/* @import url(jquery-ui-1.8.10.custom.css); */ /* @import url(jquery-ui-1.8.10.custom.css); */
@ -25,19 +26,22 @@ table, caption, tbody, tfoot, thead, tr, th, td {
vertical-align: baseline; vertical-align: baseline;
} }
/* added by seba because nobody else did this. */ a:focus {
outline: none;
}
.content { .content {
margin: 5px; margin: 5px;
} }
/* end of addition */
body { body {
line-height: 1; line-height: 1;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6, th {
clear: both; clear: both;
font-weight: normal; font-weight: bold;
font-family: "Istok Web", inherit;
} }
ol, ul, li { ol, ul, li {
@ -70,11 +74,7 @@ a img {
/* GENERAL SETTINGS */ /* GENERAL SETTINGS */
body { body {
font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; font: 11px "Open Sans", Tahoma, Verdana, Arial, sans-serif;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Droid Serif', Garamond, serif;
} }
p { margin-bottom: 7px; } p { margin-bottom: 7px; }
@ -93,6 +93,15 @@ input[type=text]:focus, input[type=search]:focus, input[type=password]:focus {
#header { #header {
margin-bottom: 20px; margin-bottom: 20px;
background: #333;
background-image: -webkit-gradient(linear, left top, left bottom, from(#666666), to(#111111));
background-image: -webkit-linear-gradient(top, #666666, #111111);
background-image: -moz-linear-gradient(top, #666666, #111111);
background-image: -ms-linear-gradient(top, #666666, #111111);
background-image: -o-linear-gradient(top, #666666, #111111);
background-image: linear-gradient(top, #666666, #111111);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666', EndColorStr='#111111');
} }
#header > div { #header > div {
@ -100,7 +109,7 @@ input[type=text]:focus, input[type=search]:focus, input[type=password]:focus {
} }
#header .search { #header .search {
background: url("img/logo.png") 10px center no-repeat #323232; background: url("img/logo.png") 10px center no-repeat transparent;
height: 40px; height: 40px;
} }
@ -115,45 +124,72 @@ input[type=text]:focus, input[type=search]:focus, input[type=password]:focus {
} }
#header .base_nav { #header .base_nav {
background: url("img/base_nav_bg.gif") repeat-x #339DD1; background: #3398cc;
background-image: -webkit-gradient(linear, left top, left bottom, from(#32bbef), to(#3398cc));
background-image: -webkit-linear-gradient(top, #32bbef, #3398cc);
background-image: -moz-linear-gradient(top, #32bbef, #3398cc);
background-image: -ms-linear-gradient(top, #32bbef, #3398cc);
background-image: -o-linear-gradient(top, #32bbef, #3398cc);
background-image: linear-gradient(top, #32bbef, #3398cc);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#32bbef', EndColorStr='#3398cc');
text-transform: uppercase; text-transform: uppercase;
height: 50px;
color: white; color: white;
border-bottom: 2px solid black;
padding-top: 10px;
-moz-box-shadow: 0 3px 8px 0 black inset;
-webkit-box-shadow: 0 3px 8px 0 black inset;
box-shadow: 0 3px 8px 0 black inset;
} }
#header .base_nav h1 { #header .base_nav h1 {
color: white; color: white;
float: left; display: inline-block;
margin-right: 20px; margin: 0 20px 0 0;
line-height: 50px; padding: 5px 0 0 0;
vertical-align: middle;
line-height: 1;
text-shadow: 0 -1px #777;
} }
#header .base_nav ul { #header .base_nav ul {
float: left; display: inline-block;
vertical-align: middle;
} }
#header .base_nav ul li { #header .base_nav ul li {
display: inline-block; display: inline-block;
text-transform: uppercase; font-weight: bold;
line-height: 36px; margin-right: 10px;
} }
#header .base_nav a { #header .base_nav a {
text-align: center;
//background: #3398cc;
display: block; display: block;
margin-top: 7px; vertical-align: middle;
padding: 0 10px;
text-decoration: none; text-decoration: none;
color: white; color: inherit;
padding: 10px 15px;
margin: 3px 0;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
-webkit-transition: background .2s;
} }
#header .base_nav a:hover { #header .base_nav a:hover {
-webkit-transition: background .2s;
background: white; background: white;
color: #339DD1; color: #339DD1;
-webkit-box-shadow: 0 1px 0 0 #777 inset;
-moz-box-shadow: 0 1px 0 0 #777 inset;
box-shadow: 0 1px 0 0 #777 inset;
} }
span.balance { span.balance {
float:right; float:right;
line-height: 50px; padding: 10px 0;
margin: 3px 0;
} }
/* LOGIN FORM */ /* LOGIN FORM */
@ -161,8 +197,8 @@ span.balance {
form.login { form.login {
width: 300px; width: 300px;
margin: 60px auto; margin: 60px auto;
/*-moz-box-shadow: 3px 3px 6px #333; -moz-box-shadow: 1px 1px 2px #eaeaea;
-webkit-box-shadow: 3px 3px 6px #333;*/ -webkit-box-shadow: 1px 1px 2px #eaeaea;
box-shadow: 1px 1px 2px #eaeaea; box-shadow: 1px 1px 2px #eaeaea;
border: 1px solid #E5E5E5; border: 1px solid #E5E5E5;
padding: 20px; padding: 20px;
@ -232,6 +268,7 @@ div.error {
color: #8A1F11; color: #8A1F11;
border-color: #FBC2C4; border-color: #FBC2C4;
} }
div.error a { color:#8A1F11; } div.error a { color:#8A1F11; }
div.notice { div.notice {
@ -239,6 +276,7 @@ div.notice {
color: #514721; color: #514721;
border-color: #FFD324; border-color: #FFD324;
} }
div.notice a { color:#514721; } div.notice a { color:#514721; }
div.success{ div.success{
@ -339,56 +377,103 @@ html body div#header div.search ul.ui-autocomplete li.ui-menu-item.focus {
font-weight: bold; font-weight: bold;
} }
/* TABLE */
/* Edited by Theri */
table.showitem { table.showitem {
border:1px solid #DFDFDF; border: 0 none;
border-collapse: separate; border-collapse: collapse;
border-spacing: 5pt; width: 100%;
} }
table.showitem td { table.showitem td.productImage {
vertical-align: middle; width: 80px;
text-align: center;
}
table.showitem td.productImage img {
max-width: 100%;
max-height: 64px;
} }
table.showitem th { table.showitem th {
vertical-align: middle; font-size: 20px;
text-align:center; text-align:center;
} }
table.details { table.showitem td.name {
border-width: 0px;
margin-top: 25px;
}
table.details th {
vertical-align: middle;
text-align: center;
}
table.details td {
vertical-align: middle;
text-align: center;
}
.content a {
color: #3398CC;
text-decoration: none;
}
.content a.button {
text-align: center;
display: block;
margin-top: 7px;
padding: 0 10px; padding: 0 10px;
} }
.content a:hover { table.showitem td.name span {
background: #3398CC; display: block;
color: white; font-weight: bold;
} }
.content h1 { table.showitem td, table.showitem th {
font: 20px "lucida grande", tahoma, verdana, arial, sans-serif; vertical-align: middle;
text-align: center; }
table.showitem tr td {
padding-bottom: 10px;
}
table.showitem th[scope="row"] {
width: 20px;
padding: 0;
margin: 0;
-moz-transform: rotate(270deg);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
a.buyButton {
display: block;
padding: 5px 10px;
height: 32px;
text-align: center;
border-radius: 6px;
float: left;
margin-right: 10px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#666666), to(#111111));
background-image: -webkit-linear-gradient(top, #666666, #111111);
background-image: -moz-linear-gradient(top, #666666, #111111);
background-image: -ms-linear-gradient(top, #666666, #111111);
background-image: -o-linear-gradient(top, #666666, #111111);
background-image: linear-gradient(top, #666666, #111111);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666', EndColorStr='#111111');
-moz-box-shadow: 0 1px 3px 0 black;
-webkit-box-shadow: 0 1px 3px 0 black;
box-shadow: 0 1px 3px 0 black;
}
a.buyButton:hover {
background-image: -webkit-gradient(linear, left top, left bottom, from(#555555), to(#000000));
background-image: -webkit-linear-gradient(top, #555555, #000000);
background-image: -moz-linear-gradient(top, #555555, #000000);
background-image: -ms-linear-gradient(top, #555555, #000000);
background-image: -o-linear-gradient(top, #555555, #000000);
background-image: linear-gradient(top, #555555, #000000);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#555555', EndColorStr='#000000');
}
a.buyButton:active {
-moz-box-shadow: 0 1px 3px 0 black, 0 1px 3px 0 black inset;
-webkit-box-shadow: 0 1px 3px 0 black, 0 1px 3px 0 black inset;
box-shadow: 0 1px 3px 0 black, 0 1px 3px 0 black inset;
}
a.buyButton.includingDeposit span {
background-image: url("img/payment_deposit.png");
min-width: 65px;
}
a.buyButton span {
display: block;
height: 100%;
min-width: 32px;
background: url("img/payment.png") no-repeat center center transparent;
text-indent: -10000px;
} }

View File

@ -1,24 +1,28 @@
jQuery(document).ready(function($) { jQuery(document).ready(function($) {
if(!$("html").hasClass("loggedIn"))
return;
var search_input = $("div.search input.autocomplete"); var search_input = $("div.search input.autocomplete");
var selected_item = []; var selected_item = [];
var selection = false; var selection = false;
var lock = false; var lock = false;
var items = [false]; var items = [false];
$.getJSON('/api/store/', function(data) { $.getJSON("/api2/buyable/item", function(data) {
if(data.error === undefined) { if(data.error === undefined) {
source = []; source = [];
$.each(data, function(key, val) { $.each(data, function(key, item) {
items[val.pk] = val; items[item.id] = item;
source.push({ source.push({
value: val.pk, value: item.id,
label: "<span class='preview pk" + val.pk + "'><img src='" + label: "<span class='preview pk" + item.id + "'><img src='" +
MEDIA_URL + val.fields.image + "' alt='" + MEDIA_URL + item.image + "' alt='" +
val.fields.name + "' /></span>" + item.name + "' /></span>" +
"<span class='meta'>" + val.fields.name + "<span class='meta'>" + item.name +
"<br />Preis: " + val.fields.price.toFixed(2) + "<br />Preis: " + parseFloat(item.price).toFixed(2) +
" €</span><span class='buy'></span>" " €</span><span class='buy'></span>"
}); });
}); });
@ -58,8 +62,8 @@ jQuery(document).ready(function($) {
if(lock && event.keyCode === 39) { if(lock && event.keyCode === 39) {
selected_item.addClass("load"); selected_item.addClass("load");
$.get("/api/store/buy/" + selection.value + "/", { $.post("/api2/buyable/item/" + selection.value, {
"deposit": "1"
}, function(data, status) { }, function(data, status) {
selected_item.removeClass("load"); selected_item.removeClass("load");