Kai Diefenbach avatar Kai Diefenbach committed 64c36c8

Moved docs to upper folder.

Comments (0)

Files changed (52)

docs/diagramms/erm_properties.graffle

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>129.18</string>
+	</array>
+	<key>AutoAdjust</key>
+	<false/>
+	<key>CanvasColor</key>
+	<dict>
+		<key>w</key>
+		<string>1</string>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>CanvasScale</key>
+	<real>1</real>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2009-04-05 07:50:44 +0200</string>
+	<key>Creator</key>
+	<string>Kai Diefenbach</string>
+	<key>DisplayScale</key>
+	<string>1 cm = 1 cm</string>
+	<key>FileType</key>
+	<string>flat</string>
+	<key>GraphDocumentVersion</key>
+	<integer>5</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{30, 18}, {456, 44}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>52</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 ERM Properties}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>50</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>51</integer>
+			<key>Points</key>
+			<array>
+				<string>{209, 534}</string>
+				<string>{108.5, 534.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>DoubleBar</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>14</integer>
+				<key>Info</key>
+				<integer>8</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Points</key>
+			<array>
+				<string>{108.5, 423}</string>
+				<string>{108.5, 534.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>33</integer>
+				<key>Info</key>
+				<integer>5</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>48</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Points</key>
+			<array>
+				<string>{209, 269}</string>
+				<string>{108.5, 269.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>DoubleBar</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+				<key>Info</key>
+				<integer>8</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Points</key>
+			<array>
+				<string>{108.5, 387}</string>
+				<string>{108.5, 269.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>33</integer>
+				<key>Info</key>
+				<integer>6</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 251}</string>
+				<string>{249, 185}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>41</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Points</key>
+			<array>
+				<string>{249, 154}</string>
+				<string>{249, 185}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{68, 387}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>33</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs22 \cf0 Product\
+PropertyValue}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{217.5, 325}, {64, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>32</integer>
+			<key>Line</key>
+			<dict>
+				<key>ID</key>
+				<integer>26</integer>
+				<key>Position</key>
+				<real>0.90566039085388184</real>
+				<key>RotationType</key>
+				<integer>0</integer>
+			</dict>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 global\
+properties}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{357, 387.766}, {64, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Line</key>
+			<dict>
+				<key>ID</key>
+				<integer>30</integer>
+				<key>Position</key>
+				<real>0.5057222843170166</real>
+				<key>RotationType</key>
+				<integer>0</integer>
+			</dict>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 local\
+properties}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>28</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Points</key>
+			<array>
+				<string>{389, 267.75}</string>
+				<string>{389, 532.75}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>27</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Points</key>
+			<array>
+				<string>{290, 534}</string>
+				<string>{389, 532.75}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>14</integer>
+				<key>Info</key>
+				<integer>7</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Points</key>
+			<array>
+				<string>{290, 269}</string>
+				<string>{389, 267.75}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>25</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 387}</string>
+				<string>{249.5, 334}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>13</integer>
+				<key>Info</key>
+				<integer>6</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 287}</string>
+				<string>{249.5, 334}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>24</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 516}</string>
+				<string>{249.5, 472}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>14</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>24</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 423}</string>
+				<string>{249.5, 472}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>13</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>21</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 552}</string>
+				<string>{249.5, 596}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>DoubleBar</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>14</integer>
+				<key>Info</key>
+				<integer>5</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>21</integer>
+			<key>Points</key>
+			<array>
+				<string>{249.5, 621}</string>
+				<string>{249.5, 596}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Cap</key>
+					<integer>0</integer>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Join</key>
+					<integer>0</integer>
+					<key>TailArrow</key>
+					<string>CrowBall</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+				<key>Info</key>
+				<integer>6</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 621}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>10</real>
+			</dict>
+			<key>ID</key>
+			<integer>15</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs20 \cf0 PropertyOption}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 516}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>14</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 Property}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 387}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>10</real>
+			</dict>
+			<key>ID</key>
+			<integer>13</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs20 \cf0 PropertyGroup}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 251}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 Product}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 118}, {81, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.491442, 0.260063}</string>
+				<string>{0.507118, -0.224086}</string>
+				<string>{0.507118, 0.267179}</string>
+				<string>{-0.27431, -0.474028}</string>
+				<string>{0.27978, -0.478478}</string>
+				<string>{0.293938, 0.543044}</string>
+				<string>{-0.286232, 0.553804}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 Category}</string>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>IsPalette</key>
+	<string>NO</string>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Ebene 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict/>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array>
+		<dict>
+			<key>ActiveLayerIndex</key>
+			<integer>0</integer>
+			<key>AutoAdjust</key>
+			<false/>
+			<key>CanvasColor</key>
+			<dict>
+				<key>w</key>
+				<string>1</string>
+			</dict>
+			<key>CanvasOrigin</key>
+			<string>{0, 0}</string>
+			<key>CanvasScale</key>
+			<real>1</real>
+			<key>ColumnAlign</key>
+			<integer>1</integer>
+			<key>ColumnSpacing</key>
+			<real>36</real>
+			<key>DisplayScale</key>
+			<string>1 cm = 1 cm</string>
+			<key>GraphicsList</key>
+			<array/>
+			<key>GridInfo</key>
+			<dict/>
+			<key>HPages</key>
+			<integer>1</integer>
+			<key>IsPalette</key>
+			<string>NO</string>
+			<key>KeepToScale</key>
+			<false/>
+			<key>Layers</key>
+			<array>
+				<dict>
+					<key>Lock</key>
+					<string>NO</string>
+					<key>Name</key>
+					<string>Ebene 1</string>
+					<key>Print</key>
+					<string>YES</string>
+					<key>View</key>
+					<string>YES</string>
+				</dict>
+			</array>
+			<key>LayoutInfo</key>
+			<dict/>
+			<key>Orientation</key>
+			<integer>2</integer>
+			<key>RowAlign</key>
+			<integer>1</integer>
+			<key>RowSpacing</key>
+			<real>36</real>
+			<key>SheetTitle</key>
+			<string>Master 1</string>
+			<key>UniqueID</key>
+			<integer>1</integer>
+			<key>VPages</key>
+			<integer>1</integer>
+		</dict>
+	</array>
+	<key>ModificationDate</key>
+	<string>2009-04-05 08:32:03 +0200</string>
+	<key>Modifier</key>
+	<string>Kai Diefenbach</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklySG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklySG</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklySG</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklySG</string>
+		</array>
+	</dict>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Arbeitsfläche 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>NO</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>DrawerTab</key>
+		<string>Outline</string>
+		<key>DrawerWidth</key>
+		<real>209</real>
+		<key>Frame</key>
+		<string>{{296, 148}, {538, 829}}</string>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {523, 771}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+	</dict>
+</dict>
+</plist>
Add a comment to this file

docs/diagramms/erm_properties.png

Added
New image

docs/eng/Makefile

+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d .build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html      to make standalone HTML files"
+	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
+	@echo "  htmlhelp  to make HTML files and a HTML help project"
+	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  changes   to make an overview over all changed/added/deprecated items"
+	@echo "  linkcheck to check all external links for integrity"
+
+clean:
+	-rm -rf .build/*
+
+html:
+	mkdir -p .build/html .build/doctrees
+	$(SPHINXBUILD) -ab html $(ALLSPHINXOPTS) .build/html
+	@echo
+	@echo "Build finished. The HTML pages are in .build/html."
+
+pickle:
+	mkdir -p .build/pickle .build/doctrees
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) .build/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files or run"
+	@echo "  sphinx-web .build/pickle"
+	@echo "to start the sphinx-web server."
+
+web: pickle
+
+htmlhelp:
+	mkdir -p .build/htmlhelp .build/doctrees
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) .build/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in .build/htmlhelp."
+
+latex:
+	mkdir -p .build/latex .build/doctrees
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) .build/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in .build/latex."
+	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+	      "run these through (pdf)latex."
+
+changes:
+	mkdir -p .build/changes .build/doctrees
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) .build/changes
+	@echo
+	@echo "The overview file is in .build/changes."
+
+linkcheck:
+	mkdir -p .build/linkcheck .build/doctrees
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) .build/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in .build/linkcheck/output.txt."

docs/eng/api/cart.rst

+:mod:`Cart`
+==========
+
+Models 
+------
+.. automodule:: lfs.cart.models
+
+   .. autoclass:: Cart
+   :members:
+   .. autoclass:: CartItem
+   :members:
+   
+
+Utils 
+------   
+.. automodule:: lfs.cart.utils
+
+   .. autofunction:: get_cart_price

docs/eng/api/customer.rst

+:mod:`Customer`
+===============
+
+Models 
+------
+.. automodule:: lfs.customer.models
+
+   .. autoclass:: Customer
+   .. autoclass:: Address
+   .. autoclass:: BankAccount   
+   .. autoclass:: CreditCard   
+
+Utils 
+------   
+.. automodule:: lfs.customer.utils
+
+   .. autofunction:: get_or_create_customer
+   .. autofunction:: create_customer
+   .. autofunction:: get_customer
+   .. autofunction:: update_customer_after_login

docs/eng/api/payment.rst

+:mod:`Payment`
+=============
+
+Models
+------
+.. automodule:: lfs.payment.models
+
+   .. autoclass:: PaymentMethod
+   .. autoclass:: PaymentMethodPrice
+      :members:
+
+Utils 
+------   
+.. automodule:: lfs.payment.utils
+
+   .. autofunction:: get_valid_payment_methods
+   .. autofunction:: get_default_payment_method
+   .. autofunction:: get_selected_payment_method
+   .. autofunction:: get_payment_costs
+   .. autofunction:: process_payment

docs/eng/api/shipping.rst

+:mod:`Shipping`
+===============
+
+Models
+------
+.. automodule:: lfs.shipping.models
+
+   .. autoclass:: ShippingMethod
+   .. autoclass:: ShippingMethodPrice
+      :members:
+   
+Utils 
+------   
+.. automodule:: lfs.shipping.utils
+
+   .. autofunction:: get_valid_shipping_methods
+   .. autofunction:: get_default_shipping_method
+   .. autofunction:: get_selected_shipping_method
+   .. autofunction:: get_shipping_costs
+# -*- coding: utf-8 -*-
+#
+# LFS documentation build configuration file, created by
+# sphinx-quickstart on Wed Jan 14 09:33:45 2009.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# The contents of this file are pickled, so don't put values in the namespace
+# that aren't pickleable (module imports are okay, they're removed automatically).
+#
+# All configuration values have a default value; values that are commented out
+# serve to show the default value.
+
+import sys, os
+
+# If your extensions are in another directory, add it here. If the directory
+# is relative to the documentation root, use os.path.abspath to make it
+# absolute, like shown here.
+sys.path.append(os.path.abspath('/Users/Kai/django/shop'))
+
+# General configuration
+# ---------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc']
+
+autoclass_content='init'
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['.templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General substitutions.
+project = 'LFS'
+copyright = '2009, Kai Diefenbach'
+
+# The default replacements for |version| and |release|, also used in various
+# other places throughout the built documents.
+#
+# The short X.Y version.
+version = '0.1a1'
+# The full version, including alpha/beta/rc tags.
+release = '0.1a1'
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directories, that shouldn't be searched
+# for source files.
+#exclude_dirs = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# Options for HTML output
+# -----------------------
+
+# The style sheet to use for HTML and HTML Help pages. A file of that name
+# must exist either in Sphinx' static/ path, or in one of the custom paths
+# given in html_static_path.
+html_style = 'default.css'
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (within the static path) to place at the top of
+# the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['.static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, the reST sources are included in the HTML build as _sources/<name>.
+#html_copy_source = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'LFSdoc'
+
+
+# Options for LaTeX output
+# ------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, document class [howto/manual]).
+latex_documents = [
+  ('index', 'LFS.tex', 'LFS Documentation',
+   'Kai Diefenbach', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True

docs/eng/developer/criteria.rst

+Category
+========
+
+General
+-------
+- Each criterion has a type (which is returned by the content_type attribute)
+- Each criterion has a view which renders the criterion

docs/eng/developer/customer.rst

+Customer
+========
+
+There are some custom views for login and logout:
+
+customer.views.login
+--------------------
+
+The reasons to use a custom login method is: 
+
+  * check checkout type
+  * integration of register and login form
+
+checkout.views.login
+--------------------
+
+This a slightly different login method which is called within the checkout 
+process if it appropriate.
+
+The reasons to use a custom login method is: 
+
+  * check checkout type
+  * integration of register and login form
+
+Both login methods are using the Django's standard AuthenticationForm
+
+customer.views.logout
+---------------------  
+The reasons to use a customer logout method is 
+
+  * just to be complete (provide login and logout).
+
+:mod:`Customer`
+===============
+  
+Models 
+------
+.. automodule:: lfs.customer.models
+
+   .. autoclass:: Customer
+   .. autoclass:: Address
+   .. autoclass:: BankAccount   
+   .. autoclass:: CreditCard   
+
+Utils 
+------   
+.. automodule:: lfs.customer.utils
+
+   .. autofunction:: get_or_create_customer
+   .. autofunction:: create_customer
+   .. autofunction:: get_customer
+   .. autofunction:: update_customer_after_login  

docs/eng/index.rst

+.. LFS documentation master file, created by sphinx-quickstart on Wed Dec 17 19:36:02 2008.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+===
+LFS
+===
+
+Narrative documentation
+=======================
+
+
+.. toctree::
+   :maxdepth: 2
+
+   narrative/features.rst
+   narrative/customer.rst
+   narrative/shipping.rst
+   narrative/category.rst
+
+API
+===
+
+.. toctree::
+   :maxdepth: 1
+
+   api/cart.rst
+   api/customer.rst
+   api/payment.rst
+   api/shipping.rst
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+* :ref:`glossary`
+

docs/eng/narrative/addresses.rst

+Address management
+==================
+
+Some information regarding to address handling.
+
+General
+-------
+
+* The shop customer can enter two addresses while he checks out: shipping and
+  invoice address
+* The shop customer first enters the invoice address
+* If the shipping address differs from the invoice address he can additionally
+  add a shipping address.
+
+Storing
+-------
+
+Adresses
+^^^^^^^^
+
+* The order object stores both adresses in the designed fields separated from
+  each other (no reference to the address objects of the customer) even if they
+  don't differ. This data are kept forever even if the addresses of the customer
+  changed later.
+* The customer object stores references to addresses. If there is no shipping
+  address the field will be let empty.
+
+E-Mail
+^^^^^^
+
+* If the customer is registered the e-mail address will be stored in and 
+  retrieved from Django's default user object. This e-mail address will then be 
+  used and hence there will be no e-mail address field displayed to the customer
+  on the checkout page.
+* If the customer is not registered the e-mail adress will be stored within the 
+  invoice address object hence there will be a e-mail address field displayed 
+  to the customer on the checkout page.
+
+Displaying
+-----------
+
+* Both addresses will be displayed on the order, even if they don't differ from 
+  each other. This will happen automatically because both address fields will 
+  be field when the order will be created (see `Storing`_)
+
+Management
+----------
+
+* The shop customer can manage his addresses via "My account".
+* At them moment he can enter maximal two adresses: one invoice and one shipping 
+  address (This may be changed in future to an arbitrary amout). If there is 
+  no shipping adress he can add one.

docs/eng/narrative/category.rst

+Category
+========
+
+General
+-------
+
+* Categories are used to browse through the shop.
+* Categories can have an arbitrary amount of products.
+* Categories can have an arbitrary amount of sub categories.
+* Categories can display its sub categories or products.
+* Categories have format information which decides how its products or
+  categories are displayed.
+* Categories can have an optional ``static block`` which can displayed on the top
+  of the category page.
+
+Category Tab
+------------
+
+* **Name**
+    The name of the Category.
+* **Slug**
+    This is the last part of the URL to display the category. This has to be
+    unique for a category.
+* **Parent**
+    The direct parent category of the category. If this is empty the category
+    is a top level category.
+* **Short description**
+    The short description of the category. This is displayed within within a
+    category list. This is true if a category displays its sub categories. See
+    content.
+* **Description**
+    The description of the category. This is displayed within detail views of
+    the category.
+* **Image**
+    The image of the category. This is displayed within within a category list
+    This is true if a category displays its sub categories. See content.
+* **Static block**
+    If a static block is selected it is displayed on top of the category view.
+* **Content**
+    This decides whether the products or the sub category of a category is
+    displayed.
+* **Active formats**
+    If selected ``product rows``, ``product cols`` and ``category cols`` of the
+    category are taken. Otherwise the category inherits formats from the parent
+    category.
+* **product rows**
+    If a categories content is ``products`` then so many rows of products are
+    displayed.
+* **product cols**
+    If a categories content is ``products`` then so many cols of products are
+    displayed.
+* **categories cols**
+    If a categories content is ``categories`` then so many cols of categories
+    are displayed.
+
+Please note that the formats are inherited by sub categories (if they don't
+have ``àctive formats`` selected). So even if a category has selected
+``products`` the information for ``category cols`` could be important for sub
+categories and vice versa.
+
+Products Tab
+------------
+
+This tab is used to assign products to the displayed category.
+
+SEO Tab
+-------
+
+* **Meta keywords**
+   The meta keywords of the category. The content of this field is used for the
+   meta keywords tag of the category page.
+* **Meta description**
+   The meta description of the category. the content of this field is used for
+   the meta description tag of the category page.

docs/eng/narrative/checkout.rst

+Checkout
+========
+
+General
+-------
+
+* The kind of checkout is choosable.
+
+    Only as guest:
+       Shop customer have no possibility to login and are redirected directly
+       to the checkout page.
+
+    Only logged in:
+       Shop customer have to login or register at the beginning of the checkout
+       process.
+
+    As guest and logged in:
+       Shop customer can choose at the beginning of the checkout process whether
+       they login, register or checkout without registration/login
+
+Further infomation
+------------------
+* :doc:`../developer/customer`
+* :doc:`addresses`

docs/eng/narrative/customer.rst

+Customer
+========
+

docs/eng/narrative/customizing.rst

+===========
+Customizing
+===========
+
+Themeing
+========
+
+1. Erzeugen eines Ordners für das Theme
+
+2. Erzeugen eines Ordners "static" (mit Unterordner) innerhalb des Themeordners
+
+3. Kopieren des LFS "templates" Ordner  in den Themeordner. Die Ordnerstruktur 
+   sollte wie folgt aussehen::
+
+      mytheme
+         |____ static
+         |        |____ css
+         |        |____ js
+         |        |____ img
+         |
+         |____ templates
+                  |____ 404.html
+                  |____ 500.html
+                  |____ base.html
+                  |____ cart
+                  |____ catalog
+                  |____ ...
+    
+4. Erzeugen einer symbolischen Verknüpfung zum mytheme/static Ordner innerhalb 
+   des Standard static Ordners von Django::
+   
+      $ cd /path/to/django/static/
+      $ ln -s /path/to/mytheme/static mytheme
+   
+5. Anpassen des Basistemplates "base.html", so dass die Dateien des Themeordners
+   verwendet werden, beispielsweise::
+   
+      <link rel="stylesheet" type="text/css" href="/static/mytheme/css/main.css" />
+   
+6. Registrieren des Templateordners in "settings.py". Vor Standardordner für
+   Templates::
+
+      TEMPLATE_DIRS = (
+          "/path/to/mytheme/templates/",
+          "/path/to/lfs/templates/",
+          ... 
+      )

docs/eng/narrative/features.rst

+.. _features:
+
+Features
+========
+
+Technologie
+-----------
+- 100% Valides HTML und CSS
+- :term:`Python`, :term:`Django`, :term:`jQuery`
+- MySQL, Postgres, Oracle
+- Apache, lighttpd, nginx
+- memcached
+- Sphinx
+
+Philosphie
+----------
+- Klare Trennung von Daten, Logik und Design (MVC/MVT)
+- Einfach anpassbar
+- Skalierbar
+- Geschwindigkeit hat Priorität
+
+Verwaltung
+----------
+- Einfach zu verwendende und leistungsfähige Administrations-Oberfläche
+- Automatische Skalierung von Bildern
+- WYSIWYG-Editor für die Eingabe von Texten
+- Ajax Technologie
+
+Caching
+-------
+- Ausgeklügelte Caching Strategie um alle Teile der Seite vollautomatisch zu 
+  cachen. Selbst personalisierte Teile, wie der Warenkorb, werden zuverlässig 
+  und effizient gecacht.
+- *LFS* benutzt verschieden Caching-Backends (Datei- oder Speicherbasierend).
+  Inklusive `memcached <http://www.danga.com/memcached/>`_, dass bei weitem 
+  schnellste und effizienteste Caching-system.
+
+Checkout
+--------
+- One-Page Checkout
+- Checkout mit Benutzerkonto und/oder anonym.
+- Zugriff auf das Adressbuch, Bankkonten, Kreditkarten falls Checkout mit
+  Benutzerkonto.
+- Optionales erstellen eines Benutzerkontos während des Checkout-Prozesses.
+
+Search Engine Optimization (SEO)
+--------------------------------
+- 100% Search Engine Friendly
+- Hohe Performanz ("Google says speed is king" [#]_) 
+- Schön geformte, sprechende URLs
+- Flache URLs
+- Automtisch erzeugte Seitenübersicht
+- Automatische erzeugte Google-Sitemap
+- Anbindung an Google Analytics Site Tracking und e-Commerce.
+
+Lieferung
+---------
+- Variable Anzahl von Liefermethoden
+- Einfache Verwaltung von variablen Lieferpreisen pro Liefermethode, bspw. 
+  basierend auf Lieferland, Gewicht, Größe oder Gurtmaß, etc.
+
+Zahlungsweisen
+--------------
+- Vorbereitet für die Bezahlung per Nachnahme, Bankkonto, PayPal und 
+  Kreditkarte.
+- Variable Anzahl von weiteren Zahlungsweisen
+- Einfache Verwaltung von variablen Lieferpreisen pro Bezahlmethode, bspw. 
+  basierend auf dem Gesamtpreis der Bestellung, Datum, etc.
+  
+Katalog
+----------------
+- Statische Seiten zur Generierung von Informationen, Landing Pages, etc.
+- Cross-sells, Up-sells and Zugehörige Produkte
+- Produkt Tags
+- Breadcrumbs
+
+Kategorien
+----------
+- Variable Struktur
+- Flache URLs
+- Ansicht für Produkt oder Subkategorien
+- Meta-Keywords und -Description
+- Einfache Zuordnung von Produkten
+- Statische HTML-Block pro Kategorie
+- Variables Layout pro Kategorie: Anzahl Spalten und Zeilen
+
+Produkte
+--------
+- Variable Anzahl von Bildern pro Produkt
+- Produkt Galerie
+- Produktvarianten
+- Ähnliche Produkte
+- Produkt-Zubehör
+- Ähnliche Produkte auf Basis von Tags
+- Meta-Keywords und -Description
+
+.. [#] http://news.cnet.com/Google-says-speed-is-king/2100-1032_3-6134247.html

docs/eng/narrative/glossary.rst

+.. _glossary:
+
+Glossary
+============================
+
+.. glossary::
+
+   Django 
+        Django ist ein in :term:`Python` geschriebenes quelloffenes Web-Framework
+        
+        Siehe http://www.djangoproject.org für mehr.
+
+   Python
+        Python ist eine ausgereifte universale Programmiersprache, die für viele 
+        verschiedenartige Lösungen angewendet werden kann. Python wird weltweit 
+        von millionen Benutzern angewendet und von tausenden ständig weiterentwickelt.
+        
+        Siehe http://www.python.org für mehr.
+
+   jQuery 
+        jQuery ist ein freies, umfangreiches JavaScript-Framework, das komfortable 
+        Funktionen zur DOM-Manipulation und -Navigation zur Verfügung stellt.
+
+   Meta keywords        
+        Nennt Stichwörter oder Themen, die auf der Webseite vorkommen bzw. 
+        behandelt werden. Die Stichwörter werden durch Komma und nachfolgendem 
+        Leerzeichen voneinander getrennt.
+        
+   Meta description
+        Kurze Beschreibung des Inhalts der Webseite.
+        
+   Statischer Block
+        Statisches HTML, das an mehreren Stellen des Shops eingefügt werden kann.
+        I.d.R. im Kopf einer Kategorie-Seite.
+        
+   Top-Level-Kategorie
+        Eine Kategorie, die keine übergeordnete Kategorie besitzt.
+        

docs/eng/narrative/properties.rst

+==========
+Properties
+==========
+
+Zweck
+=====
+* Properties dienen dazu Produkte variable Eigenschaften zuzuweisen.
+
+* Properties werden genutzt um: Produkte zu filtern (Filtered Navigation, 
+  Filtered Search), Produkte zu vergleiche, zur Erzeugung von Varianten 
+  (Shopbetreiber) und Auswahl von Variante (Käufer).
+
+Allgemein
+=========
+
+* Properties werden zentral verwaltet.
+
+* Properties werden mittels einer Propertygruppe zusammengefasst.
+
+* Ein Property kann mehreren Propertygruppen zugewiesen werden.
+
+* Properties werden über Produktgrupppen Produkten zugeordnet: Produkte haben 
+  Propertygruppen, Propertygruppen haben Properties, daraus folgt: Produkte 
+  haben die Properties ihrer zugewiesenen Produktgruppen.
+  
+* Properties um Eigenschaften zuzuweisen, steht sinvollerweise nur für den 
+  Subtyp "Produkt" und "Variante" zur Verfügung.
+
+* Properties um Varianten zu erzeugen, steht sinvollerweise nur für den Subtyp 
+  "Product mit Varianten" zur Verfügung.
+  
+* Produkte können zur Generierung von Varianten lokale Properties haben. Diese
+  sind nur für das jeweilige Produkt gültig.
+
+Löschen und Entfernen von Properties/Propertygruppen
+=====================================================
+
+* Wird ein Property gelöscht, werden alle Werte, die Produkte für dieses 
+  Property zugewiesen bekommen haben, gelöscht.
+
+* Wird ein Property aus einer Gruppe entfernt, werden von Produkten, die dieser 
+  Gruppe zugewiesen sind alle zugewiesnen Werte für dieses Property gelöscht.
+    
+* Wird eine Propertygruppe gelöscht, werden von Produkten, die dieser Gruppe
+  zugewiesen sind alle Werte für die Properties dieser Gruppe haben gelöscht.
+  
+Filter
+======
+* Wenn ein Filter gesetzt wird, werden:
+
+  - Produkte angezeigt, die dem Filter entsprechen.
+  
+  - "Produkte mit Varianten" angezeigt, bei denen mindestens eine Variante dem
+    Filter entspricht. (Es werden nicht die Varianten selbst angezeigt).

docs/eng/narrative/shipping.rst

+Shipping
+========
+
+General
+-------
+* There can be several shipping methods, e.g. "standard" and "express" from
+  which the customer can choose.
+
+* A shipping method can be set to active/inactive by a simple flag.
+
+* The shipping methods may be restricted by criteria, e.g. the shop owner just
+  want to provide "express" when the customer lives within a certain country. 
+  
+* Only when **all** criteria of a shipping method are true the shipping method 
+  is valid.
+
+* Only active and valid shipping methods are provided to choose.
+
+* A shipping method has a default price, which is by default the current price
+  of the shipping method.
+
+* A shipping method can have additional prices for a shipping method. Example: 
+  if the total cart price is greater than x the price for "standard" shipping 
+  method should be y.
+  
+* Shipping method prices are restricted by criteria. The first price for which
+  all criteria a true is the current price of the shipping method. If no 
+  additional price is true the default price of the shippping method is taken as
+  the current price.
+
+* First the customer gets the default shipping method automatically. This is -
+  at the moment and might be changed - the first active and valid shipping 
+  method.
+
+* If the current choosen shipping method gets invalid after the shop customer
+  changes her cart the default shipping method will be assigned.
+  
+Berechnung der Lieferzeit
+=========================
+
+* Lieferzeiten hängen von der Liefermethode ab, d.h. jede Liefermethode hat
+  genau eine Lieferzeit.
+
+* Die Lieferzeit eines Produktes kann sich für die Produktansicht und der
+  Warenkorbansicht unterschieden.
+
+* Die Lieferzeit eines Produkts für die Produktansicht wird der Standard-
+  Liefermethode eines Produktes entnommen. Diese ist zur Zeit die erste gültige 
+  (basierend auf Kriterien) Liefermethode eines Produktes.
+
+* Die Lieferzeit eines Produkts für die Warenkorbansicht wird der Liefermethode
+  entnommen, die der Shopkunde gewählt hat. Ist diese jedoch für ein Produkt nicht
+  gültig (auf Basis ihrer Kriterien), so wird die Lieferzeit auch hier der 
+  Standard-Liefermethode entnommen.
+
+* Die Lieferzeiten der Produkte in Warenkorbansicht werden zwar zu Zeit nicht 
+  angezeigt, jedoch dienen diese als Basis für die Berechnung der Gesamtlieferzeit 
+  des Warenkorbs.
+
+* Ein Produkt kann eine manuelle Lieferzeiten haben. Ist dies der Fall wird diese 
+  Lieferzeit angezeigt und die Berechnung auf Basis der Kriterien entfällt.
+
+* Darüber hinaus kann ein Produkt eine Bestellzeit und eine Bestelldatum haben. 
+  Ist ein Proudukt nicht mehr auf Lager, wird diese Bestellzeit (abzüglich der 
+  bereits vergangenen Tage seit der Bestellung) hinzugefügt.  

docs/eng/online/katalog/category.rst

+Kategorie
+=========
+
+Stamdaten
+---------
+
+Name
+   Der Name der Kategorie. Dieser wird u.a. in der Navigation angezeigt.
+
+Slug 
+   Dies ist Teil der URL um die Kategorie anzuzeigen. Dieser muss einzigartig 
+   unter allen Kategorien sein.
+   
+Elternkategorie
+   Die direkt übergeordnete Kategorie. Falls diese leer ist, handelt es sich 
+   um eine :term:`Top-Level-Kategorie` des Shops.
+
+Kurzbeschreibung
+   Kurze Beschreibung der Kategorie. Diese wird in einer Übersicht über 
+   Kategorien angezeigt, beispielsweise wenn die Ansichtsart ``Unterkategorien``
+   für eine Kategorie oder den Shop ausgewählt ist.
+   
+Beschreibung
+   Die Beschreibung der Kategorie. Diese wird in der Detailansicht einer 
+   Kategorie angezeigt.
+
+Bild
+   Das Bild der Kategorie. Diese wird in einer Kategorienübersicht angezeigt, 
+   beispielsweise wenn für den ``Inhalt`` ``Unterkategorien`` ausgewählt ist.
+
+Statischer Block
+   Ein HTML Block, der abhängig vom verwendeten Design in verschiedenen Bereichen
+   der Kategorie angezeigt werden kann, z.B. im Kopf.
+   
+Inhalt
+   Hier wird ausgewählt, ob Produkte oder Unterkatorien für diese Kategorie 
+   angezeigt wird.
+
+Formate aktivieren
+   Falls ausgewählt, werden ``Produktzeilen``, ``Produktspalten`` und