Merge branch 'master' of git.2li.ch:ibz/web_AI-5

* 'master' of git.2li.ch:ibz/web_AI-5:
  save the order price in CHF
  fix the order price currency_name
  display the exchangerate with name and value
  remove unused imports
  extend the projekt abgrenzung
  update the documentation
This commit is contained in:
Ivan Hörler 2018-03-02 15:59:34 +01:00
commit bbb12e154f
3 changed files with 115 additions and 100 deletions

View File

@ -1,6 +1,4 @@
from django.db import models from django.db import models
from decimal import Decimal
import datetime
class ExchangeRate_name(models.Model): class ExchangeRate_name(models.Model):
@ -25,7 +23,7 @@ class ExchangeRate(models.Model):
def exchange(_currency_id, _base_currency): def exchange(_currency_id, _base_currency):
rate = ExchangeRate.objects.filter(name=_currency_id).latest('date') rate = ExchangeRate.objects.filter(name=_currency_id).latest('date')
return round(rate.exchange_rate_to_chf * _base_currency,2) return round(rate.exchange_rate_to_chf * _base_currency, 2)
def __str__(self): def __str__(self):
return str(self.name) return '{} {}'.format(self.exchange_rate_to_chf, self.name)

View File

@ -397,11 +397,13 @@ def checkout(request):
order = Order.objects.create(user=request.user, order = Order.objects.create(user=request.user,
status=orderstatus) status=orderstatus)
for position in cart_positions: for position in cart_positions:
article = Article.objects.get(pk=position.article.id)
OrderPosition.objects.create( OrderPosition.objects.create(
article=position.article, article=position.article,
order=order, order=order,
amount=position.amount, amount=position.amount,
price_in_chf=position.article.price_in_chf price_in_chf=article.price_in_chf * Decimal.from_float(
position.amount)
) )
return HttpResponseRedirect('/order/%s/' % order.id) return HttpResponseRedirect('/order/%s/' % order.id)
@ -449,7 +451,7 @@ def order(request, order_id):
price = round( price = round(
rate.exchange_rate_to_chf * order_position.price_in_chf, rate.exchange_rate_to_chf * order_position.price_in_chf,
2) 2)
currency_name = order.exchange_rate currency_name = order.exchange_rate.name
else: else:
currency_name = 'CHF' currency_name = 'CHF'
price = order_position.price_in_chf price = order_position.price_in_chf

View File

@ -57,7 +57,7 @@ steht unter einer GPLv3\footcite{gplv3} Lizenz. Dadurch darf die
Arbeit unter Einhaltung der Regeln der GPLv3 kopiert und Arbeit unter Einhaltung der Regeln der GPLv3 kopiert und
weiterverarbeitet werden. weiterverarbeitet werden.
* TODO Projektanalyse und Planung * Projektanalyse und Planung
** Projektziele ** Projektziele
Der Student erarbeitet in einer Zweiergruppe einen selbst entwickelten Der Student erarbeitet in einer Zweiergruppe einen selbst entwickelten
@ -118,6 +118,19 @@ geeignet erscheinenden Frameworks. Jede noch so kleine Zeiteinsparung
durch vorgefertigte Entwicklungen werden angenommen und dennoch wollen durch vorgefertigte Entwicklungen werden angenommen und dennoch wollen
wir keine fertigen Software Produkte einsetzen. wir keine fertigen Software Produkte einsetzen.
Um einen ersten Anhaltspunkt zu haben, haben wir ein Mindmap
gezeichnet in welchem wir unsere ersten Ideen erfassten. Zusehen ist
dies in der Abbildung([[fig:mindmap]]).
#+LATEX:\newpage
#+LATEX:\begin{landscape}
#+CAPTION: Mindmap
#+ATTR_LATEX: :height.9\textwidth
#+NAME: fig:mindmap
[[file:diagrammes/mindmap/webshop.png]]
#+LATEX:\end{landscape}
#+LATEX:\newpage
** SWOT-Analyse ** SWOT-Analyse
Die SWOT-Analyse ist eine Methode, die Stärken, Schwächen, Chancen und Die SWOT-Analyse ist eine Methode, die Stärken, Schwächen, Chancen und
@ -339,9 +352,14 @@ Abbildung:([[fig:umweltgrafik]]) grafisch dargestellt.
#+NAME: fig:risk #+NAME: fig:risk
[[file:diagrammes/risk_analysis.eps]] [[file:diagrammes/risk_analysis.eps]]
** TODO Projektabgrenzung ** Projektabgrenzung
Am Ende des Projekts die nicht lauffähigen Teile ausgrenzen. :-) Der Webshop wird nur zum Teil aufgebaut. Funktionen wie die Bezahlung
, das Versenden von Email Benachrichtigungen und einen automatisierte
Aktualisierung der Warenbestände sind nicht Teil der Umsetzung.
Aufgrund des hohen Mehraufwandes der für die Umsetzung nötig gewesen
wäre, ist es zur Zeit nur möglich einen Artikel einem Bild zuzuweisen
und nicht die Bilder direkt auf dem Aritkel hochzuladen.
* Projektmanagement * Projektmanagement
** Organigramm ** Organigramm
@ -381,8 +399,6 @@ Am Ende des Projekts die nicht lauffähigen Teile ausgrenzen. :-)
\end{figure} \end{figure}
#+END_EXPORT #+END_EXPORT
** Projektstrukturplan
#+LATEX:\newpage
** Varianten ** Varianten
Wir haben uns 3 mögliche Varianten in Bezug auf die zu Wir haben uns 3 mögliche Varianten in Bezug auf die zu
@ -528,101 +544,100 @@ auch, weshalb wir uns dafür entschieden haben.
| Django und MariaDB | 196 | | Django und MariaDB | 196 |
|------------------------------------+-----------------------------------------------| |------------------------------------+-----------------------------------------------|
** Architektur vorbereiten
#+LATEX:\newpage #+LATEX:\newpage
#+LATEX:\begin{landscape} #+LATEX:\begin{landscape}
** Arbeitspakete definieren ** Zeitplanung
#+CAPTION: Variantenbewertung Ergebnis #+CAPTION: Variantenbewertung Ergebnis
#+ATTR_LATEX: :environment longtable :align |r|l|l|l|r|r| #+ATTR_LATEX: :environment longtable :align |r|l|l|l|r|r|
|------------------------------+----------------------------------------------------+--------------------------------+----------------------------------+------------------------------------------+--------------------------------------| |------------+----------------------------------------------------+------------+------------+------------+------------|
| <10> | | <10> | <10> | <10> | <10> |
| *ID*\cellcolor[HTML]{C0C0C0} | *Subject*\cellcolor[HTML]{C0C0C0} | *Type*\cellcolor[HTML]{C0C0C0} | *Status*\cellcolor[HTML]{C0C0C0} | *Estimated time*\cellcolor[HTML]{C0C0C0} | *Spent time*\cellcolor[HTML]{C0C0C0} | | *ID*\cellcolor[HTML]{C0C0C0} | *Subject*\cellcolor[HTML]{C0C0C0} | *Type*\cellcolor[HTML]{C0C0C0} | *Status*\cellcolor[HTML]{C0C0C0} | *Estimated time*\cellcolor[HTML]{C0C0C0} | *Spent time*\cellcolor[HTML]{C0C0C0} |
|------------------------------+----------------------------------------------------+--------------------------------+----------------------------------+------------------------------------------+--------------------------------------| |------------+----------------------------------------------------+------------+------------+------------+------------|
| 201 | Projektanalyse und Planung | Phase | Closed | 25.5 | 30.5 | | 201 | Projektanalyse und Planung | Phase | Closed | | |
| 202 | Projektziele | Task | Closed | 1 | 0.5 | | 202 | Projektziele | Task | Closed | 1 | 0.5 |
| 203 | Vision | Task | Closed | 1 | 0.5 | | 203 | Vision | Task | Closed | 1 | 0.5 |
| 204 | SWOT-Analyse | Task | Closed | 3 | 0.5 | | 204 | SWOT-Analyse | Task | Closed | 3 | 0.5 |
| 205 | Umweltanalyse | Task | Closed | 3 | 1.5 | | 205 | Umweltanalyse | Task | Closed | 3 | 1.5 |
| 206 | Risikomanagement | Task | Closed | 2 | 2.5 | | 206 | Risikomanagement | Task | Closed | 2 | 2.5 |
| 207 | Projektabgrenzung | Task | Closed | 2 | 2 | | 207 | Projektabgrenzung | Task | Closed | 2 | 2 |
| 259 | Meeting 1 | Milestone | Closed | 3 | 6 | | 259 | Meeting 1 | Milestone | Closed | 3 | 6 |
| 200 | Kickoff | Milestone | Closed | 4 | 8 | | 200 | Kickoff | Milestone | Closed | 4 | 8 |
| 301 | Meeting 2 | Milestone | Closed | 3 | 3 | | 301 | Meeting 2 | Milestone | Closed | 3 | 3 |
| 306 | Meeting 3 | Milestone | Closed | 1.5 | 3 | | 306 | Meeting 3 | Milestone | Closed | 1.5 | 3 |
| 313 | Meeting 4 | Milestone | Closed | 1 | 1 | | 313 | Meeting 4 | Milestone | Closed | 1 | 1 |
| 314 | Meeting 5 | Milestone | Closed | 1 | 1 | | 314 | Meeting 5 | Milestone | Closed | 1 | 1 |
| 208 | Projektmanagement | Phase | Closed | 39 | 30 | | 208 | Projektmanagement | Phase | Closed | | |
| 218 | Architektur vorbereiten | Phase | Closed | 33 | 27 | | 218 | Architektur vorbereiten | Phase | Closed | | |
| 219 | Architektur Grafik | Task | Closed | 6 | 4 | | 219 | Architektur Grafik | Task | Rejected | 6 | 0 |
| 220 | Use Case Grafiken | Task | Closed | 6 | 3 | | 220 | Use Case Grafiken | Task | Closed | 6 | 3 |
| 221 | User Stories | Task | Closed | 1 | 1 | | 221 | User Stories | Task | Closed | 1 | 1 |
| 310 | Use Case Beschreibungen | Task | Closed | 10 | 9 | | 310 | Use Case Beschreibungen | Task | Closed | 10 | 9 |
| 254 | Test Cases benennen | Task | Closed | 10 | 10 | | 254 | Test Cases benennen | Task | Closed | 10 | 10 |
| 222 | Organigramm | Task | Closed | 0.5 | 0.5 | | 222 | Organigramm | Task | Closed | 0.5 | 0.5 |
| 223 | Projektstrukturplan | Task | Closed | 1.5 | 1.5 | | 223 | Projektstrukturplan | Task | Closed | 1.5 | 1.5 |
| 224 | Arbeitspakete definieren | Task | Closed | 4 | 1 | | 224 | Arbeitspakete definieren | Task | Closed | 4 | 1 |
| 225 | Datenbank | Phase | Closed | 23.5 | 13.65 | | 225 | Datenbank | Phase | Closed | | |
| 226 | Anforderungsanalyse | Task | Closed | 0.5 | 0 | | 226 | Anforderungsanalyse | Task | Closed | 0.5 | 0 |
| 227 | Relationen Model | Task | Closed | 2 | 0.5 | | 227 | Relationen Model | Task | Closed | 2 | 0.5 |
| 228 | Relationen Diagramm | Task | Closed | 4 | 5.25 | | 228 | Relationen Diagramm | Task | Closed | 4 | 5.25 |
| 229 | SQL Create DB | Task | Closed | 0.5 | 0.5 | | 229 | SQL Create DB | Task | Closed | 0.5 | 0.5 |
| 230 | SQL Insert Testdaten | Task | Closed | 10 | 7 | | 230 | SQL Insert Testdaten | Task | Closed | 10 | 7 |
| 231 | SQL Restriktionen erarbeiten | Task | Rejected | 0.5 | 0.1 | | 231 | SQL Restriktionen erarbeiten | Task | Rejected | 0.5 | 0.1 |
| 232 | SQL Views erstellen | Task | Rejected | 2 | 0.1 | | 232 | SQL Views erstellen | Task | Rejected | 2 | 0.1 |
| 233 | SQL Prozeduren und Funktionen erarbeiten | Task | Rejected | 2 | 0.1 | | 233 | SQL Prozeduren und Funktionen erarbeiten | Task | Rejected | 2 | 0.1 |
| 304 | SQL Create Tables | Task | Rejected | 2 | 0.1 | | 304 | SQL Create Tables | Task | Rejected | 2 | 0.1 |
| 234 | Benutzerinterface | Phase | Closed | 44.5 | 58 | | 234 | Benutzerinterface | Phase | Closed | | |
| 235 | Mockup skizzieren | Task | Closed | 1 | 1 | | 235 | Mockup skizzieren | Task | Closed | 1 | 1 |
| 236 | Frontend Umsetzung | Phase | Closed | 15.5 | 25 | | 236 | Frontend Umsetzung | Phase | Closed | | |
| 237 | Login | Task | Closed | 0.5 | 2.75 | | 237 | Login | Task | Closed | 0.5 | 2.75 |
| 315 | BUG: Eine zu lange Strassenummer wirf einen Fehler | Task | Closed | 0.5 | 0.25 | | 315 | BUG: Eine zu lange Strassenummer wirf einen Fehler | Task | Closed | 0.5 | 0.25 |
| 238 | Artikel | Task | Closed | | 0.25 | | 238 | Artikel | Task | Closed | | 0.25 |
| 312 | BUG, Preise können negativ sein. | Task | Closed | | 0.25 | | 312 | BUG, Preise können negativ sein. | Task | Closed | | 0.25 |
| 239 | Artikelliste | Task | Closed | 5 | 5 | | 239 | Artikelliste | Task | Closed | 5 | 5 |
| 240 | Warenkorb | Task | Closed | 5 | 12 | | 240 | Warenkorb | Task | Closed | 5 | 12 |
| 241 | Checkout | Task | Closed | 5 | 5 | | 241 | Checkout | Task | Closed | 5 | 5 |
| 242 | Backend Umsetzung | Phase | Closed | 28 | 32 | | 242 | Backend Umsetzung | Phase | Closed | | |
| 243 | Login | Task | Closed | 5 | 5 | | 243 | Login | Task | Closed | 5 | 5 |
| 244 | Artikel | Task | Closed | 5 | 1 | | 244 | Artikel | Task | Closed | 5 | 1 |
| 247 | Artikelliste | Task | Closed | 2.5 | 0.5 | | 247 | Artikelliste | Task | Closed | 2.5 | 0.5 |
| 302 | Artikel Erstellung | Task | Closed | 2.5 | 0.5 | | 302 | Artikel Erstellung | Task | Closed | 2.5 | 0.5 |
| 245 | Kategorien | Task | Closed | 5 | 1 | | 245 | Kategorien | Task | Closed | 5 | 1 |
| 248 | Kategorie Liste | Task | Closed | 2.5 | 0.5 | | 248 | Kategorie Liste | Task | Closed | 2.5 | 0.5 |
| 303 | Kategorie erstellen | Task | Closed | 2.5 | 0.5 | | 303 | Kategorie erstellen | Task | Closed | 2.5 | 0.5 |
| 246 | Artikel Attributte | Task | Closed | 4 | 1.5 | | 246 | Artikel Attributte | Task | Closed | 4 | 1.5 |
| 249 | Atributt Liste | Task | Rejected | 1 | 0 | | 249 | Atributt Liste | Task | Rejected | 1 | 0 |
| 305 | Bilder hochladen | Task | Closed | 3 | 1.5 | | 305 | Bilder hochladen | Task | Closed | 3 | 1.5 |
| 250 | Kunden Liste | Task | Closed | 1 | 0.5 | | 250 | Kunden Liste | Task | Closed | 1 | 0.5 |
| 308 | Models | Task | Closed | 3 | 5 | | 308 | Models | Task | Closed | 3 | 5 |
| 309 | Währungskurse | Task | Closed | 5 | 18 | | 309 | Währungskurse | Task | Closed | 5 | 18 |
| 252 | Testing | Phase | Closed | 10 | 10 | | 252 | Testing | Phase | Closed | | |
| 255 | Test Cases Durchführung | Task | Closed | 10 | 10 | | 255 | Test Cases Durchführung | Task | Closed | 10 | 10 |
| 257 | Dokumentations Styling | Task | Closed | 2 | 2.5 | | 257 | Dokumentations Styling | Task | Closed | 2 | 2.5 |
| 258 | Präsentation | Milestone | In progress | 2 | 0 | | 258 | Präsentation | Milestone | In progress | 2 | 0 |
| 263 | Vorprojekt | Task | Closed | 28.25 | 35.5 | | 263 | Vorprojekt | Task | Closed | 28.25 | 35.5 |
| 209 | Tools vorbereiten | Phase | Closed | 4.75 | 12 | | 209 | Tools vorbereiten | Phase | Closed | | |
| 210 | GIT-Workspace | Task | Closed | 0.5 | 0.5 | | 210 | GIT-Workspace | Task | Closed | 0.5 | 0.5 |
| 211 | Development Container | Task | Closed | 2 | 7.25 | | 211 | Development Container | Task | Closed | 2 | 7.25 |
| 261 | Domain reservieren | Task | Closed | 0.25 | 0.25 | | 261 | Domain reservieren | Task | Closed | 0.25 | 0.25 |
| 262 | Produktions Server aufsetzen | Task | Closed | 2 | 4 | | 262 | Produktions Server aufsetzen | Task | Closed | 2 | 4 |
| 212 | Technologien abklären | Phase | Closed | 13.5 | 13.5 | | 212 | Technologien abklären | Phase | Closed | | |
| 213 | C# | Task | Closed | 1 | 1 | | 213 | C# | Task | Closed | 1 | 1 |
| 214 | Django | Task | Closed | 5 | 5 | | 214 | Django | Task | Closed | 5 | 5 |
| 215 | MariaDB | Task | Closed | 0.5 | 0.5 | | 215 | MariaDB | Task | Closed | 0.5 | 0.5 |
| 216 | SQL Server | Task | Closed | 1 | 1 | | 216 | SQL Server | Task | Closed | 1 | 1 |
| 217 | Laravel | Task | Closed | 5 | 5 | | 217 | Laravel | Task | Closed | 5 | 5 |
| 316 | MySQL | Task | Closed | 1 | 1 | | 316 | MySQL | Task | Closed | 1 | 1 |
| 264 | Architektur Tests | Task | Closed | 6 | 6 | | 264 | Architektur Tests | Task | Closed | 6 | 6 |
| 307 | Machbarkeitsanalyse | Task | Closed | 2 | 2 | | 307 | Machbarkeitsanalyse | Task | Closed | 2 | 2 |
| 251 | Varianten Erarbeiten | Task | Closed | 2 | 2 | | 251 | Varianten Erarbeiten | Task | Closed | 2 | 2 |
| 265 | Abgabetermin | Milestone | Scheduled | 0.5 | 0 | | 265 | Abgabetermin | Milestone | Scheduled | 0.5 | 0 |
| 266 | Zwischenbericht ablieferen | Task | Closed | 0.5 | 0 | | 266 | Zwischenbericht ablieferen | Task | Closed | 0.5 | 0 |
|------------------------------+----------------------------------------------------+--------------------------------+----------------------------------+------------------------------------------+--------------------------------------| |------------+----------------------------------------------------+------------+------------+------------+------------|
| *Total* | | | | 455.75 | 470.30 | | *Total* | | | | 218.50 | 214.65 |
|------------------------------+----------------------------------------------------+--------------------------------+----------------------------------+------------------------------------------+--------------------------------------| |------------+----------------------------------------------------+------------+------------+------------+------------|
#+TBLFM: @>$5=vsum(@2..@-1);%.2f #+TBLFM: @>$5=vsum(@3..@-1);%.2f
#+TBLFM: @>$6=vsum(@2..@-1);%.2f #+TBLFM: @>$6=vsum(@3..@-1);%.2f
#+LATEX:\end{landscape} #+LATEX:\end{landscape}
* Umsetzung * Umsetzung