diff --git a/docs/doku.org b/docs/doku.org
index 6e3edf3..23448e7 100644
--- a/docs/doku.org
+++ b/docs/doku.org
@@ -201,6 +201,91 @@ Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-)
* Umsetzung
** Spezifikation
*** Anwendungsfälle
+*** Klassendiagramme der Models
+
+**** Category
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Kategorien
+[[file:pictures/class_category.png]]
+
+**** Option
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Optionen
+[[file:pictures/class_option.png][file:pictures/class_option.png]]
+
+**** Setting
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Einstellungen
+[[file:pictures/class_setting.png][file:pictures/class_setting.png]]
+
+**** ArticleStatus
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Artikelstatus
+[[file:pictures/class_articlestatus.png][file:pictures/class_articlestatus.png]]
+
+**** ExchangeRate
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Wechselkurse
+[[file:pictures/class_exchangerate.png][file:pictures/class_exchangerate.png]]
+
+**** Article
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Artikel
+[[file:pictures/class_article.png][file:pictures/class_article.png]]
+
+**** OrderStatus
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Bestellstatus
+[[file:pictures/class_orderstatus.png][file:pictures/class_orderstatus.png]]
+
+**** OrderOfGoods
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Warenbestellungen
+[[file:pictures/class_orderofgoods.png][file:pictures/class_orderofgoods.png]]
+
+**** Picture
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Bilder
+[[file:pictures/class_picture.png][file:pictures/class_picture.png]]
+
+**** Order
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Bestellungen
+[[file:pictures/class_order.png][file:pictures/class_order.png]]
+
+**** ShoppingCart
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Warenkörbe
+[[file:pictures/class_shoppingcart.png][file:pictures/class_shoppingcart.png]]
+
+**** City
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Städte
+[[file:pictures/class_city.png][file:pictures/class_city.png]]
+
+**** Salutation
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Anreden
+[[file:pictures/class_salutation.png][file:pictures/class_salutation.png]]
+
+**** Person
+
+#+ATTR_LATEX: :width 9cm
+#+CAPTION: Klassenmodel für Personen
+[[file:pictures/class_person.png][file:pictures/class_person.png]]
** Datenbank
*** Anforderungsanalyse
diff --git a/docs/pictures/class_article.png b/docs/pictures/class_article.png
new file mode 100644
index 0000000..5fa7c54
Binary files /dev/null and b/docs/pictures/class_article.png differ
diff --git a/docs/pictures/class_articlestatus.dot b/docs/pictures/class_articlestatus.dot
new file mode 100644
index 0000000..89b1583
--- /dev/null
+++ b/docs/pictures/class_articlestatus.dot
@@ -0,0 +1,40 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_ArticleStatus [label=<
+
+
+
+ ArticleStatus
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_ArticleStatus;
+}
diff --git a/docs/pictures/class_articlestatus.png b/docs/pictures/class_articlestatus.png
new file mode 100644
index 0000000..57c7aa3
Binary files /dev/null and b/docs/pictures/class_articlestatus.png differ
diff --git a/docs/pictures/class_category.dot b/docs/pictures/class_category.dot
new file mode 100644
index 0000000..01ac117
--- /dev/null
+++ b/docs/pictures/class_category.dot
@@ -0,0 +1,47 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Category [label=<
+
+
+
+ Category
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+webshop_models_Category;
+}
diff --git a/docs/pictures/class_category.png b/docs/pictures/class_category.png
new file mode 100644
index 0000000..8709311
Binary files /dev/null and b/docs/pictures/class_category.png differ
diff --git a/docs/pictures/class_city.dot b/docs/pictures/class_city.dot
new file mode 100644
index 0000000..95aee6e
--- /dev/null
+++ b/docs/pictures/class_city.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_City [label=<
+
+
+
+ City
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ zip_code
+ |
+ PositiveSmallIntegerField
+ |
+
+
+ >]
+webshop_models_City;
+}
diff --git a/docs/pictures/class_city.png b/docs/pictures/class_city.png
new file mode 100644
index 0000000..7566378
Binary files /dev/null and b/docs/pictures/class_city.png differ
diff --git a/docs/pictures/class_exchangerate.dot b/docs/pictures/class_exchangerate.dot
new file mode 100644
index 0000000..fb111d6
--- /dev/null
+++ b/docs/pictures/class_exchangerate.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_ExchangeRate [label=<
+
+
+
+ ExchangeRate
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ exchange_rate_to_chf
+ |
+ FloatField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_ExchangeRate;
+}
diff --git a/docs/pictures/class_exchangerate.png b/docs/pictures/class_exchangerate.png
new file mode 100644
index 0000000..b53beb4
Binary files /dev/null and b/docs/pictures/class_exchangerate.png differ
diff --git a/docs/pictures/class_option.dot b/docs/pictures/class_option.dot
new file mode 100644
index 0000000..6bed7b8
--- /dev/null
+++ b/docs/pictures/class_option.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Option [label=<
+
+
+
+ Option
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ value
+ |
+ IntegerField
+ |
+
+
+ >]
+webshop_models_Option;
+}
diff --git a/docs/pictures/class_option.png b/docs/pictures/class_option.png
new file mode 100644
index 0000000..09b7e7a
Binary files /dev/null and b/docs/pictures/class_option.png differ
diff --git a/docs/pictures/class_order.png b/docs/pictures/class_order.png
new file mode 100644
index 0000000..f6ca1e4
Binary files /dev/null and b/docs/pictures/class_order.png differ
diff --git a/docs/pictures/class_orderofgoods.dot b/docs/pictures/class_orderofgoods.dot
new file mode 100644
index 0000000..5be5772
--- /dev/null
+++ b/docs/pictures/class_orderofgoods.dot
@@ -0,0 +1,64 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_OrderOfGoods [label=<
+
+
+
+ OrderOfGoods
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ order_status
+ |
+ ForeignKey (id)
+ |
+
+
+ amount
+ |
+ FloatField
+ |
+
+
+ delivery_date
+ |
+ DateField
+ |
+
+
+ order_date
+ |
+ DateTimeField
+ |
+
+
+ >]
+webshop_models_OrderOfGoods;
+}
diff --git a/docs/pictures/class_orderofgoods.png b/docs/pictures/class_orderofgoods.png
new file mode 100644
index 0000000..341d8fc
Binary files /dev/null and b/docs/pictures/class_orderofgoods.png differ
diff --git a/docs/pictures/class_orderstatus.dot b/docs/pictures/class_orderstatus.dot
new file mode 100644
index 0000000..4dd1dd8
--- /dev/null
+++ b/docs/pictures/class_orderstatus.dot
@@ -0,0 +1,40 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_OrderStatus [label=<
+
+
+
+ OrderStatus
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_OrderStatus;
+}
diff --git a/docs/pictures/class_orderstatus.png b/docs/pictures/class_orderstatus.png
new file mode 100644
index 0000000..d63dc64
Binary files /dev/null and b/docs/pictures/class_orderstatus.png differ
diff --git a/docs/pictures/class_overview.dot b/docs/pictures/class_overview.dot
new file mode 100644
index 0000000..305ec03
--- /dev/null
+++ b/docs/pictures/class_overview.dot
@@ -0,0 +1,910 @@
+digraph model_graph {
+ // Dotfile by Django-Extensions graph_models
+ // Created: 2017-12-01 19:34
+ // Cli Options: -a
+
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+
+ // Labels
+
+
+ webshop_models_Category [label=<
+
+
+
+ Category
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_Option [label=<
+
+
+
+ Option
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ value
+ |
+ IntegerField
+ |
+
+
+ >]
+
+ webshop_models_Setting [label=<
+
+
+
+ Setting
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ option
+ |
+ ForeignKey (id)
+ |
+
+
+ enabled
+ |
+ BooleanField
+ |
+
+
+ >]
+
+ webshop_models_ArticleStatus [label=<
+
+
+
+ ArticleStatus
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_ExchangeRate [label=<
+
+
+
+ ExchangeRate
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ exchange_rate_to_chf
+ |
+ FloatField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_Article [label=<
+
+
+
+ Article
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ status
+ |
+ ForeignKey (id)
+ |
+
+
+ description
+ |
+ CharField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ price_in_chf
+ |
+ DecimalField
+ |
+
+
+ stock
+ |
+ FloatField
+ |
+
+
+ >]
+
+ webshop_models_OrderStatus [label=<
+
+
+
+ OrderStatus
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_OrderOfGoods [label=<
+
+
+
+ OrderOfGoods
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ order_status
+ |
+ ForeignKey (id)
+ |
+
+
+ amount
+ |
+ FloatField
+ |
+
+
+ delivery_date
+ |
+ DateField
+ |
+
+
+ order_date
+ |
+ DateTimeField
+ |
+
+
+ >]
+
+ webshop_models_Picture [label=<
+
+
+
+ Picture
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_Order [label=<
+
+
+
+ Order
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ order_status
+ |
+ ForeignKey (id)
+ |
+
+
+ user
+ |
+ ForeignKey (id)
+ |
+
+
+ >]
+
+ webshop_models_ShoppingCart [label=<
+
+
+
+ ShoppingCart
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ user
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_City [label=<
+
+
+
+ City
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ zip_code
+ |
+ PositiveSmallIntegerField
+ |
+
+
+ >]
+
+ webshop_models_Salutation [label=<
+
+
+
+ Salutation
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ webshop_models_Person [label=<
+
+
+
+ Person
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ city
+ |
+ ForeignKey (id)
+ |
+
+
+ salutation
+ |
+ ForeignKey (id)
+ |
+
+
+ user
+ |
+ OneToOneField (id)
+ |
+
+
+ first_name
+ |
+ CharField
+ |
+
+
+ last_name
+ |
+ CharField
+ |
+
+
+ street_name
+ |
+ CharField
+ |
+
+
+ street_number
+ |
+ CharField
+ |
+
+
+ >]
+
+
+
+
+ django_contrib_admin_models_LogEntry [label=<
+
+
+
+ LogEntry
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ content_type
+ |
+ ForeignKey (id)
+ |
+
+
+ user
+ |
+ ForeignKey (id)
+ |
+
+
+ action_flag
+ |
+ PositiveSmallIntegerField
+ |
+
+
+ action_time
+ |
+ DateTimeField
+ |
+
+
+ change_message
+ |
+ TextField
+ |
+
+
+ object_id
+ |
+ TextField
+ |
+
+
+ object_repr
+ |
+ CharField
+ |
+
+
+ >]
+
+
+
+
+ django_contrib_auth_models_AbstractUser [label=<
+
+
+
+ AbstractUser <AbstractBaseUser,PermissionsMixin>
+ |
+
+
+ date_joined
+ |
+ DateTimeField
+ |
+
+
+ email
+ |
+ EmailField
+ |
+
+
+ first_name
+ |
+ CharField
+ |
+
+
+ is_active
+ |
+ BooleanField
+ |
+
+
+ is_staff
+ |
+ BooleanField
+ |
+
+
+ is_superuser
+ |
+ BooleanField
+ |
+
+
+ last_login
+ |
+ DateTimeField
+ |
+
+
+ last_name
+ |
+ CharField
+ |
+
+
+ password
+ |
+ CharField
+ |
+
+
+ username
+ |
+ CharField
+ |
+
+
+ >]
+
+ django_contrib_auth_models_Permission [label=<
+
+
+
+ Permission
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ content_type
+ |
+ ForeignKey (id)
+ |
+
+
+ codename
+ |
+ CharField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ django_contrib_auth_models_Group [label=<
+
+
+
+ Group
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+
+ django_contrib_auth_models_User [label=<
+
+
+
+ User <AbstractUser>
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ date_joined
+ |
+ DateTimeField
+ |
+
+
+ email
+ |
+ EmailField
+ |
+
+
+ first_name
+ |
+ CharField
+ |
+
+
+ is_active
+ |
+ BooleanField
+ |
+
+
+ is_staff
+ |
+ BooleanField
+ |
+
+
+ is_superuser
+ |
+ BooleanField
+ |
+
+
+ last_login
+ |
+ DateTimeField
+ |
+
+
+ last_name
+ |
+ CharField
+ |
+
+
+ password
+ |
+ CharField
+ |
+
+
+ username
+ |
+ CharField
+ |
+
+
+ >]
+
+
+
+
+ django_contrib_contenttypes_models_ContentType [label=<
+
+
+
+ ContentType
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ app_label
+ |
+ CharField
+ |
+
+
+ model
+ |
+ CharField
+ |
+
+
+ >]
+
+
+
+
+ django_contrib_sessions_base_session_AbstractBaseSession [label=<
+
+
+
+ AbstractBaseSession
+ |
+
+
+ expire_date
+ |
+
+ |
+
+
+ session_data
+ |
+ TextField
+ |
+
+
+ >]
+
+ django_contrib_sessions_models_Session [label=<
+
+
+
+ Session <AbstractBaseSession>
+ |
+
+
+ session_key
+ |
+ CharField
+ |
+
+
+ expire_date
+ |
+ DateTimeField
+ |
+
+
+ session_data
+ |
+ TextField
+ |
+
+
+ >]
+
+
+
+
+ // Relations
+
+ webshop_models_Category -> webshop_models_Category
+ [label="article (category)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Setting -> webshop_models_Option
+ [label="option (setting)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Article -> webshop_models_ArticleStatus
+ [label="status (article)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_OrderOfGoods -> webshop_models_Article
+ [label="article (orderofgoods)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_OrderOfGoods -> webshop_models_OrderStatus
+ [label="order_status (orderofgoods)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Picture -> webshop_models_Article
+ [label="article (picture)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Order -> django_contrib_auth_models_User
+ [label="user (order)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Order -> webshop_models_OrderStatus
+ [label="order_status (order)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Order -> webshop_models_Article
+ [label="article (order)"] [arrowhead=dot arrowtail=dot, dir=both];
+
+ webshop_models_ShoppingCart -> django_contrib_auth_models_User
+ [label="user (shoppingcart)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_ShoppingCart -> webshop_models_Article
+ [label="article (shoppingcart)"] [arrowhead=dot arrowtail=dot, dir=both];
+
+ webshop_models_Person -> webshop_models_Salutation
+ [label="salutation (person)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Person -> webshop_models_City
+ [label="city (person)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ webshop_models_Person -> django_contrib_auth_models_User
+ [label="user (person)"] [arrowhead=none, arrowtail=none, dir=both];
+
+
+ django_contrib_admin_models_LogEntry -> django_contrib_auth_models_User
+ [label="user (logentry)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ django_contrib_admin_models_LogEntry -> django_contrib_contenttypes_models_ContentType
+ [label="content_type (logentry)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ django_contrib_auth_base_user_AbstractBaseUser [label=<
+
+ >]
+ django_contrib_auth_models_AbstractUser -> django_contrib_auth_base_user_AbstractBaseUser
+ [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both];
+ django_contrib_auth_models_PermissionsMixin [label=<
+
+ >]
+ django_contrib_auth_models_AbstractUser -> django_contrib_auth_models_PermissionsMixin
+ [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both];
+
+ django_contrib_auth_models_Permission -> django_contrib_contenttypes_models_ContentType
+ [label="content_type (permission)"] [arrowhead=none, arrowtail=dot, dir=both];
+
+ django_contrib_auth_models_Group -> django_contrib_auth_models_Permission
+ [label="permissions (group)"] [arrowhead=dot arrowtail=dot, dir=both];
+
+ django_contrib_auth_models_User -> django_contrib_auth_models_Group
+ [label="groups (user)"] [arrowhead=dot arrowtail=dot, dir=both];
+
+ django_contrib_auth_models_User -> django_contrib_auth_models_Permission
+ [label="user_permissions (user)"] [arrowhead=dot arrowtail=dot, dir=both];
+
+ django_contrib_auth_models_User -> django_contrib_auth_models_AbstractUser
+ [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both];
+
+
+
+ django_contrib_sessions_models_Session -> django_contrib_sessions_base_session_AbstractBaseSession
+ [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both];
+
+
+}
diff --git a/docs/pictures/class_overview.png b/docs/pictures/class_overview.png
new file mode 100644
index 0000000..b933537
Binary files /dev/null and b/docs/pictures/class_overview.png differ
diff --git a/docs/pictures/class_person.dot b/docs/pictures/class_person.dot
new file mode 100644
index 0000000..f2208d9
--- /dev/null
+++ b/docs/pictures/class_person.dot
@@ -0,0 +1,76 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Person [label=<
+
+
+
+ Person
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ city
+ |
+ ForeignKey (id)
+ |
+
+
+ salutation
+ |
+ ForeignKey (id)
+ |
+
+
+ user
+ |
+ OneToOneField (id)
+ |
+
+
+ first_name
+ |
+ CharField
+ |
+
+
+ last_name
+ |
+ CharField
+ |
+
+
+ street_name
+ |
+ CharField
+ |
+
+
+ street_number
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_Person;
+}
diff --git a/docs/pictures/class_person.png b/docs/pictures/class_person.png
new file mode 100644
index 0000000..408f164
Binary files /dev/null and b/docs/pictures/class_person.png differ
diff --git a/docs/pictures/class_picture.dot b/docs/pictures/class_picture.dot
new file mode 100644
index 0000000..41b2b79
--- /dev/null
+++ b/docs/pictures/class_picture.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Picture [label=<
+
+
+
+ Picture
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ article
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_Picture;
+}
diff --git a/docs/pictures/class_picture.png b/docs/pictures/class_picture.png
new file mode 100644
index 0000000..2bd3b65
Binary files /dev/null and b/docs/pictures/class_picture.png differ
diff --git a/docs/pictures/class_salutation.dot b/docs/pictures/class_salutation.dot
new file mode 100644
index 0000000..013b1e1
--- /dev/null
+++ b/docs/pictures/class_salutation.dot
@@ -0,0 +1,40 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Salutation [label=<
+
+
+
+ Salutation
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_Salutation;
+}
diff --git a/docs/pictures/class_salutation.png b/docs/pictures/class_salutation.png
new file mode 100644
index 0000000..6c2f15f
Binary files /dev/null and b/docs/pictures/class_salutation.png differ
diff --git a/docs/pictures/class_setting.png b/docs/pictures/class_setting.png
new file mode 100644
index 0000000..54b7d74
Binary files /dev/null and b/docs/pictures/class_setting.png differ
diff --git a/docs/pictures/class_settings.dot b/docs/pictures/class_settings.dot
new file mode 100644
index 0000000..1faaf3a
--- /dev/null
+++ b/docs/pictures/class_settings.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_Setting [label=<
+
+
+
+ Setting
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ option
+ |
+ ForeignKey (id)
+ |
+
+
+ enabled
+ |
+ BooleanField
+ |
+
+
+ >]
+webshop_models_Setting;
+}
diff --git a/docs/pictures/class_shoppingcart.dot b/docs/pictures/class_shoppingcart.dot
new file mode 100644
index 0000000..67ab046
--- /dev/null
+++ b/docs/pictures/class_shoppingcart.dot
@@ -0,0 +1,46 @@
+digraph model_graph {
+ fontname = "Helvetica"
+ fontsize = 8
+ splines = true
+
+ graph [ dpi = 300 ];
+
+ node [
+ fontname = "Helvetica"
+ fontsize = 8
+ shape = "plaintext"
+ ]
+
+ edge [
+ fontname = "Helvetica"
+ fontsize = 8
+ ]
+ webshop_models_ShoppingCart [label=<
+
+
+
+ ShoppingCart
+ |
+
+
+ id
+ |
+ AutoField
+ |
+
+
+ user
+ |
+ ForeignKey (id)
+ |
+
+
+ name
+ |
+ CharField
+ |
+
+
+ >]
+webshop_models_ShoppingCart;
+}
diff --git a/docs/pictures/class_shoppingcart.png b/docs/pictures/class_shoppingcart.png
new file mode 100644
index 0000000..4b2e481
Binary files /dev/null and b/docs/pictures/class_shoppingcart.png differ