... | ... |
@@ -8,6 +8,7 @@ |
8 | 8 |
* @license commercial |
9 | 9 |
*/ |
10 | 10 |
|
11 |
+use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungLageModel; |
|
11 | 12 |
use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungRebsorteModel; |
12 | 13 |
use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungLeseartModel; |
13 | 14 |
use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungReservationModel; |
... | ... |
@@ -18,7 +19,7 @@ use Contao\ArrayUtil; |
18 | 19 |
ArrayUtil::arrayInsert($GLOBALS['BE_MOD'],1,[ |
19 | 20 |
'weinanlieferung' => [ |
20 | 21 |
'weinanlieferung' => [ |
21 |
- 'tables' => array('tl_vr_wa_standort', 'tl_vr_wa_slot', 'tl_vr_wa_rebsorte','tl_vr_wa_leseart','tl_vr_wa_reservation'), |
|
22 |
+ 'tables' => array('tl_vr_wa_standort', 'tl_vr_wa_slot', 'tl_vr_wa_rebsorte','tl_vr_wa_leseart','tl_vr_wa_lage','tl_vr_wa_reservation'), |
|
22 | 23 |
'stylesheet' => array('bundles/vonrotenbergweinanlieferung/css/backend.css') |
23 | 24 |
] |
24 | 25 |
] |
... | ... |
@@ -29,4 +30,5 @@ $GLOBALS['TL_MODELS']['tl_vr_wa_slot'] = WeinanlieferungSlotsModel::class; |
29 | 30 |
$GLOBALS['TL_MODELS']['tl_vr_wa_standort'] = WeinanlieferungStandortModel::class; |
30 | 31 |
$GLOBALS['TL_MODELS']['tl_vr_wa_rebsorte'] = WeinanlieferungRebsorteModel::class; |
31 | 32 |
$GLOBALS['TL_MODELS']['tl_vr_wa_leseart'] = WeinanlieferungLeseartModel::class; |
33 |
+$GLOBALS['TL_MODELS']['tl_vr_wa_lage'] = WeinanlieferungLageModel::class; |
|
32 | 34 |
$GLOBALS['TL_MODELS']['tl_vr_wa_reservation'] = WeinanlieferungReservationModel::class; |
33 | 35 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,124 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+/** |
|
4 |
+ * This file is part of contao-weinanlieferung-bundle. |
|
5 |
+ * |
|
6 |
+ * (c) vonRotenberg |
|
7 |
+ * |
|
8 |
+ * @license commercial |
|
9 |
+ */ |
|
10 |
+ |
|
11 |
+use Contao\DC_Table; |
|
12 |
+use Contao\DataContainer; |
|
13 |
+ |
|
14 |
+$GLOBALS['TL_DCA']['tl_vr_wa_lage'] = array |
|
15 |
+( |
|
16 |
+ // Config |
|
17 |
+ 'config' => array |
|
18 |
+ ( |
|
19 |
+ 'dataContainer' => DC_Table::class, |
|
20 |
+ 'enableVersioning' => true, |
|
21 |
+ 'sql' => array |
|
22 |
+ ( |
|
23 |
+ 'keys' => array |
|
24 |
+ ( |
|
25 |
+ 'id' => 'primary' |
|
26 |
+ ) |
|
27 |
+ ) |
|
28 |
+ ), |
|
29 |
+ |
|
30 |
+ // List |
|
31 |
+ 'list' => array |
|
32 |
+ ( |
|
33 |
+ 'sorting' => array |
|
34 |
+ ( |
|
35 |
+ 'mode' => DataContainer::MODE_SORTED, |
|
36 |
+ 'fields' => array('title'), |
|
37 |
+ 'flag' => DataContainer::SORT_INITIAL_LETTER_ASC, |
|
38 |
+ 'panelLayout' => 'limit' |
|
39 |
+ ), |
|
40 |
+ 'label' => array( |
|
41 |
+ 'fields' => array('title'), |
|
42 |
+ 'format' => '%s' |
|
43 |
+ ), |
|
44 |
+ 'global_operations' => array |
|
45 |
+ ( |
|
46 |
+ 'back' => array |
|
47 |
+ ( |
|
48 |
+ 'href' => 'table=tl_vr_wa_standort', |
|
49 |
+ 'class' => 'header_back', |
|
50 |
+ ), |
|
51 |
+ 'all' => array |
|
52 |
+ ( |
|
53 |
+ 'href' => 'act=select', |
|
54 |
+ 'class' => 'header_edit_all', |
|
55 |
+ 'attributes' => 'onclick="Backend.getScrollOffset()" accesskey="e"' |
|
56 |
+ ) |
|
57 |
+ ), |
|
58 |
+ 'operations' => array |
|
59 |
+ ( |
|
60 |
+ 'edit' => array |
|
61 |
+ ( |
|
62 |
+ 'href' => 'act=edit', |
|
63 |
+ 'icon' => 'edit.gif', |
|
64 |
+ ), |
|
65 |
+ 'copy' => array |
|
66 |
+ ( |
|
67 |
+ 'href' => 'act=paste&mode=copy', |
|
68 |
+ 'icon' => 'copy.svg' |
|
69 |
+ ), |
|
70 |
+ 'cut' => array |
|
71 |
+ ( |
|
72 |
+ 'href' => 'act=paste&mode=cut', |
|
73 |
+ 'icon' => 'cut.svg', |
|
74 |
+ 'attributes' => 'onclick="Backend.getScrollOffset()"' |
|
75 |
+ ), |
|
76 |
+ 'delete' => array |
|
77 |
+ ( |
|
78 |
+ 'href' => 'act=delete', |
|
79 |
+ 'icon' => 'delete.gif', |
|
80 |
+ ), |
|
81 |
+ 'show' => array |
|
82 |
+ ( |
|
83 |
+ 'icon' => 'show.gif', |
|
84 |
+ ), |
|
85 |
+ ) |
|
86 |
+ ), |
|
87 |
+ |
|
88 |
+ // Palettes |
|
89 |
+ 'palettes' => array |
|
90 |
+ ( |
|
91 |
+ 'default' => '{title_legend},title' |
|
92 |
+ ), |
|
93 |
+ |
|
94 |
+ // Subpalettes |
|
95 |
+ 'subpalettes' => array |
|
96 |
+ ( |
|
97 |
+ ), |
|
98 |
+ |
|
99 |
+ // Fields |
|
100 |
+ 'fields' => array |
|
101 |
+ ( |
|
102 |
+ 'id' => array |
|
103 |
+ ( |
|
104 |
+ 'sql' => "int(10) unsigned NOT NULL auto_increment" |
|
105 |
+ ), |
|
106 |
+ 'tstamp' => array |
|
107 |
+ ( |
|
108 |
+ 'sql' => "int(10) unsigned NOT NULL default 0" |
|
109 |
+ ), |
|
110 |
+ 'title' => array |
|
111 |
+ ( |
|
112 |
+ 'exclude' => true, |
|
113 |
+ 'sorting' => true, |
|
114 |
+ 'flag' => DataContainer::SORT_INITIAL_LETTER_ASC, |
|
115 |
+ 'inputType' => 'text', |
|
116 |
+ 'eval' => array |
|
117 |
+ ( |
|
118 |
+ 'mandatory' => true, |
|
119 |
+ 'maxlength' => 255 |
|
120 |
+ ), |
|
121 |
+ 'sql' => "varchar(255) NOT NULL default ''" |
|
122 |
+ ) |
|
123 |
+ ) |
|
124 |
+); |
... | ... |
@@ -97,7 +97,7 @@ $GLOBALS['TL_DCA']['tl_vr_wa_reservation'] = array |
97 | 97 |
'palettes' => array |
98 | 98 |
( |
99 | 99 |
'__selector__' => array(), |
100 |
- 'default' => 'pid,uid,behaelter,sorten,upload' |
|
100 |
+ 'default' => 'pid,uid,lage,behaelter,sorten,ernteart,upload' |
|
101 | 101 |
), |
102 | 102 |
|
103 | 103 |
// Subpalettes |
... | ... |
@@ -114,6 +114,7 @@ $GLOBALS['TL_DCA']['tl_vr_wa_reservation'] = array |
114 | 114 |
), |
115 | 115 |
'pid' => array |
116 | 116 |
( |
117 |
+ 'exclude' => true, |
|
117 | 118 |
'inputType' => 'select', |
118 | 119 |
'foreignKey' => 'tl_vr_wa_slot.time', |
119 | 120 |
'eval' => array('mandatory'=>true,'chosen'=>true,'includeBlankOption'=>true,'submitOnChange'=>true), |
... | ... |
@@ -126,29 +127,46 @@ $GLOBALS['TL_DCA']['tl_vr_wa_reservation'] = array |
126 | 127 |
), |
127 | 128 |
'uid' => array |
128 | 129 |
( |
130 |
+ 'exclude' => true, |
|
129 | 131 |
'inputType' => 'select', |
130 | 132 |
'foreignKey' => 'tl_member.username', |
131 | 133 |
'eval' => array('mandatory'=>true,'chosen'=>true,'includeBlankOption'=>true,'tl_class'=>'w50'), |
132 | 134 |
'sql' => "int(10) unsigned NOT NULL default '0'", |
133 | 135 |
'relation' => array('type' => 'belongsTo', 'load' => 'lazy') |
134 | 136 |
), |
137 |
+ 'lage' => array |
|
138 |
+ ( |
|
139 |
+ 'exclude' => true, |
|
140 |
+ 'inputType' => 'checkbox', |
|
141 |
+ 'eval' => array('multiple'=>true, 'csv'=>',','tl_class'=>'w50'), |
|
142 |
+ 'sql' => "blob NULL", |
|
143 |
+ ), |
|
135 | 144 |
'behaelter' => array |
136 | 145 |
( |
146 |
+ 'exclude' => true, |
|
137 | 147 |
'inputType' => 'text', |
138 | 148 |
'eval' => array('rgxp'=>'natural','tl_class'=>'w50'), |
139 | 149 |
'sql' => "smallint(3) unsigned NOT NULL default 0", |
140 | 150 |
), |
141 | 151 |
'sorten' => array |
142 | 152 |
( |
153 |
+ 'exclude' => true, |
|
143 | 154 |
'inputType' => 'checkbox', |
144 | 155 |
'eval' => array('multiple'=>true, 'csv'=>';','tl_class'=>'w50'), |
145 | 156 |
'sql' => "blob NULL", |
146 | 157 |
), |
158 |
+ 'ernteart' => array |
|
159 |
+ ( |
|
160 |
+ 'exclude' => true, |
|
161 |
+ 'inputType' => 'checkbox', |
|
162 |
+ 'eval' => array('multiple'=>true, 'csv'=>',','tl_class'=>'w50'), |
|
163 |
+ 'sql' => "blob NULL", |
|
164 |
+ ), |
|
147 | 165 |
'upload' => array |
148 | 166 |
( |
149 | 167 |
'exclude' => true, |
150 | 168 |
'inputType' => 'fileTree', |
151 |
- 'eval' => array('filesOnly'=>true, 'fieldType'=>'radio', 'tl_class'=>'w50', 'extensions'=>Config::get('allowedDownload')), |
|
169 |
+ 'eval' => array('filesOnly'=>true, 'fieldType'=>'radio', 'tl_class'=>'clr w50', 'extensions'=>Config::get('allowedDownload')), |
|
152 | 170 |
'sql' => "binary(16) NULL" |
153 | 171 |
), |
154 | 172 |
'filename' => array |
... | ... |
@@ -91,7 +91,7 @@ $GLOBALS['TL_DCA']['tl_vr_wa_slot'] = array |
91 | 91 |
'palettes' => array |
92 | 92 |
( |
93 | 93 |
'__selector__' => array('addEnclosure'), |
94 |
- 'default' => '{time_legend},date,time;{type_legend},behaelter,sorten;{info_legend},anmerkungen,addEnclosure;{booking_legend},buchbar,buchbar_bis' |
|
94 |
+ 'default' => '{time_legend},date,time;{type_legend},lage,behaelter,sorten,ernteart;{info_legend},anmerkungen,addEnclosure;{booking_legend},buchbar,buchbar_bis' |
|
95 | 95 |
), |
96 | 96 |
|
97 | 97 |
// Subpalettes |
... | ... |
@@ -137,6 +137,15 @@ $GLOBALS['TL_DCA']['tl_vr_wa_slot'] = array |
137 | 137 |
'eval' => array('rgxp' => 'time', 'mandatory' => true, 'tl_class' => 'w50'), |
138 | 138 |
'sql' => "int(10) NULL" |
139 | 139 |
), |
140 |
+ 'lage' => array |
|
141 |
+ ( |
|
142 |
+ 'exclude' => true, |
|
143 |
+ 'inputType' => 'select', |
|
144 |
+ 'foreignKey' => 'tl_vr_wa_lage.title', |
|
145 |
+ 'eval' => array('mandatory' => false, 'includeBlankOption' => true, 'chosen'=>true,'tl_class' => 'w50'), |
|
146 |
+ 'sql' => "smallint(3) unsigned NOT NULL default 0", |
|
147 |
+ 'relation' => array('type' => 'hasOne', 'load' => 'lazy') |
|
148 |
+ ), |
|
140 | 149 |
'behaelter' => array |
141 | 150 |
( |
142 | 151 |
'exclude' => true, |
... | ... |
@@ -179,6 +188,15 @@ $GLOBALS['TL_DCA']['tl_vr_wa_slot'] = array |
179 | 188 |
), |
180 | 189 |
'sql' => "blob NULL", |
181 | 190 |
), |
191 |
+ 'ernteart' => array |
|
192 |
+ ( |
|
193 |
+ 'exclude' => true, |
|
194 |
+ 'inputType' => 'checkbox', |
|
195 |
+ 'options' => array('handlese','vollernter'), |
|
196 |
+ 'eval' => array('mandatory'=>true,'multiple'=>true,'csv'=>','), |
|
197 |
+ 'reference' => $GLOBALS['TL_LANG']['REF']['wa_ernteart'], |
|
198 |
+ 'sql' => "blob NULL" |
|
199 |
+ ), |
|
182 | 200 |
'anmerkungen' => array |
183 | 201 |
( |
184 | 202 |
'exclude' => true, |
... | ... |
@@ -54,6 +54,11 @@ $GLOBALS['TL_DCA']['tl_vr_wa_standort'] = array |
54 | 54 |
'href' => 'table=tl_vr_wa_leseart', |
55 | 55 |
'class' => 'header_leseart', |
56 | 56 |
), |
57 |
+ 'lage' => array |
|
58 |
+ ( |
|
59 |
+ 'href' => 'table=tl_vr_wa_lage', |
|
60 |
+ 'class' => 'header_lage', |
|
61 |
+ ), |
|
57 | 62 |
'all' => array |
58 | 63 |
( |
59 | 64 |
'href' => 'act=select', |
13 | 18 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,16 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+/** |
|
4 |
+ * This file is part of contao-weinanlieferung-bundle. |
|
5 |
+ * |
|
6 |
+ * (c) vonRotenberg |
|
7 |
+ * |
|
8 |
+ * @license commercial |
|
9 |
+ */ |
|
10 |
+ |
|
11 |
+$GLOBALS['TL_LANG']['tl_vr_wa_lage']['title'][0] = 'Lage'; |
|
12 |
+$GLOBALS['TL_LANG']['tl_vr_wa_lage']['title'][1] = 'Der Name der Lage.'; |
|
13 |
+ |
|
14 |
+$GLOBALS['TL_LANG']['tl_vr_wa_lage']['title_legend'] = 'Lage'; |
|
15 |
+ |
|
16 |
+$GLOBALS['TL_LANG']['tl_vr_wa_lage']['back'] = 'Zurück'; |
... | ... |
@@ -14,6 +14,8 @@ $GLOBALS['TL_LANG']['tl_vr_wa_reservation']['behaelter'][0] = 'Behälteranzahl'; |
14 | 14 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['behaelter'][1] = 'Die Anzahl an Behälter, die der Winzer anliefert.'; |
15 | 15 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['sorten'][0] = 'Sorten'; |
16 | 16 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['sorten'][1] = 'Die Sorten, die der Winzer anliefert.'; |
17 |
+$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['ernteart'][0] = 'Ernteart'; |
|
18 |
+$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['ernteart'][1] = 'Die Ernteart, der angelieferten Reben.'; |
|
17 | 19 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['uid'][0] = 'Winzer'; |
18 | 20 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['uid'][1] = 'Zuordnung des anliefernden Winzers.'; |
19 | 21 |
$GLOBALS['TL_LANG']['tl_vr_wa_reservation']['upload'][0] = 'Datei'; |
... | ... |
@@ -14,10 +14,14 @@ $GLOBALS['TL_LANG']['tl_vr_wa_slot']['time'][0] = 'Uhrzeit'; |
14 | 14 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['time'][1] = 'Uhrzeit dieses Anlieferungsslots.'; |
15 | 15 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['behaelter'][0] = 'Behälter'; |
16 | 16 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['behaelter'][1] = 'Anzahl der Behälter, die verarbeitet werden können.'; |
17 |
+$GLOBALS['TL_LANG']['tl_vr_wa_slot']['lage'][0] = 'Lage'; |
|
18 |
+$GLOBALS['TL_LANG']['tl_vr_wa_slot']['lage'][1] = 'Lage der angelieferten Reben.'; |
|
17 | 19 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['leseart'][0] = 'Leseart'; |
18 | 20 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['leseart'][1] = 'Die verwendete Leseart.'; |
19 | 21 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['sorten'][0] = 'Rebsorten'; |
20 | 22 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['sorten'][1] = 'Die Rebsorten, die in diesem Zeitslot verarbeitet werden.'; |
23 |
+$GLOBALS['TL_LANG']['tl_vr_wa_slot']['ernteart'][0] = 'Ernteart'; |
|
24 |
+$GLOBALS['TL_LANG']['tl_vr_wa_slot']['ernteart'][1] = 'Die Ernteart, welche zur Traubenlese angewandt wurde.'; |
|
21 | 25 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['anmerkungen'][0] = 'Anmerkungen'; |
22 | 26 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['anmerkungen'][1] = 'Ergänzende Hinweise zu diesem Zeitslot.'; |
23 | 27 |
$GLOBALS['TL_LANG']['tl_vr_wa_slot']['addEnclosure'][0] = 'Anhänge'; |
... | ... |
@@ -15,3 +15,4 @@ $GLOBALS['TL_LANG']['tl_vr_wa_standort']['title_legend'] = 'Standort'; |
15 | 15 |
|
16 | 16 |
$GLOBALS['TL_LANG']['tl_vr_wa_standort']['rebsorte'] = 'Rebsorten'; |
17 | 17 |
$GLOBALS['TL_LANG']['tl_vr_wa_standort']['leseart'] = 'Leseart'; |
18 |
+$GLOBALS['TL_LANG']['tl_vr_wa_standort']['lage'] = 'Lage'; |
... | ... |
@@ -3,8 +3,8 @@ |
3 | 3 |
<div id="wa-slot-annotation-{{ id }}" class="frame"> |
4 | 4 |
<div class="frame__header"> |
5 | 5 |
<h3>Info</h3> |
6 |
- <div class="row"> |
|
7 |
- <div class="col-md-6"> |
|
6 |
+ <div class="grid-md u-gap-2"> |
|
7 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
8 | 8 |
<div class="u-flex u-items-center u-gap-1"> |
9 | 9 |
<i class="icon-uhr-outline"></i> |
10 | 10 |
<div class="t-label">Tag/Urzeit</div> |
... | ... |
@@ -12,17 +12,15 @@ |
12 | 12 |
<div class="">{{ slot.time|date('d.m.Y H:i') }}</div> |
13 | 13 |
</div> |
14 | 14 |
|
15 |
- <div class="col-md-6"> |
|
15 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
16 | 16 |
<div class="u-flex u-items-center u-gap-1"> |
17 |
- <i class="icon-uhr-standort"></i> |
|
17 |
+ <i class="icon-standort-outline"></i> |
|
18 | 18 |
<div class="t-label">Standort</div> |
19 | 19 |
</div> |
20 | 20 |
<div class="">{{ standort.title }}</div> |
21 | 21 |
</div> |
22 |
- </div> |
|
23 | 22 |
|
24 |
- <div class="row"> |
|
25 |
- <div class="col-md-6"> |
|
23 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
26 | 24 |
<div class="u-flex u-items-center u-gap-1"> |
27 | 25 |
<i class="icon-behaelter-outline"></i> |
28 | 26 |
<div class="t-label">Verfügbare Behälterkapazität</div> |
... | ... |
@@ -30,24 +28,40 @@ |
30 | 28 |
<div class="">{{ slot.behaelterAvailable }}</div> |
31 | 29 |
</div> |
32 | 30 |
|
33 |
- <div class="col-md-6"> |
|
31 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
32 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
33 |
+ <i class="icon-schere-outline"></i> |
|
34 |
+ <div class="t-label">Ernteart</div> |
|
35 |
+ </div> |
|
36 |
+ <div class="">{{ ernteart|join(', ') }}</div> |
|
37 |
+ </div> |
|
38 |
+ |
|
39 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
34 | 40 |
<div class="u-flex u-items-center u-gap-1"> |
35 | 41 |
<i class="icon-reben-outline"></i> |
36 | 42 |
<div class="t-label">Verarbeitete Sorten</div> |
37 | 43 |
</div> |
38 | 44 |
<div class="">{{ slot.sorte|join(', ') }}</div> |
39 | 45 |
</div> |
40 |
- </div> |
|
41 | 46 |
|
42 |
- {% if slot.anmerkungen %} |
|
43 |
- <div> |
|
47 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
44 | 48 |
<div class="u-flex u-items-center u-gap-1"> |
45 |
- <i class="icon-info-outline"></i> |
|
46 |
- <div class="t-label">Anmerkungen</div> |
|
49 |
+ <i class="icon-lage-outline"></i> |
|
50 |
+ <div class="t-label">Lage</div> |
|
47 | 51 |
</div> |
48 |
- {{ slot.anmerkungen|raw }} |
|
52 |
+ <div class="">{{ lage.title }}</div> |
|
49 | 53 |
</div> |
50 |
- {% endif %} |
|
54 |
+ |
|
55 |
+ {% if slot.anmerkungen %} |
|
56 |
+ <div class="grid-c-12 mb-2 mb-0-md"> |
|
57 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
58 |
+ <i class="icon-info-outline"></i> |
|
59 |
+ <div class="t-label">Anmerkungen</div> |
|
60 |
+ </div> |
|
61 |
+ {{ slot.anmerkungen|raw }} |
|
62 |
+ </div> |
|
63 |
+ {% endif %} |
|
64 |
+ </div> |
|
51 | 65 |
</div> |
52 | 66 |
</div> |
53 | 67 |
{% if modal %}</div>{% endif %} |
... | ... |
@@ -3,8 +3,8 @@ |
3 | 3 |
<div id="wa-slot-{{ id }}" class="frame" hx-get="/_ajax/vr_wa/v1/slot?do=details&id={{ id }}&modal=false" hx-target="this" hx-swap="outerHTML" hx-trigger="updateWaBooking from:body"> |
4 | 4 |
<div class="frame__header"> |
5 | 5 |
<h3>Zeitslot</h3> |
6 |
- <div class="row"> |
|
7 |
- <div class="col-md-6"> |
|
6 |
+ <div class="grid-md u-gap-2"> |
|
7 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
8 | 8 |
<div class="u-flex u-items-center u-gap-1"> |
9 | 9 |
<i class="icon-uhr-outline"></i> |
10 | 10 |
<div class="t-label">Tag/Urzeit</div> |
... | ... |
@@ -12,17 +12,15 @@ |
12 | 12 |
<div class="">{{ slot.time|date('d.m.Y H:i') }}</div> |
13 | 13 |
</div> |
14 | 14 |
|
15 |
- <div class="col-md-6"> |
|
15 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
16 | 16 |
<div class="u-flex u-items-center u-gap-1"> |
17 |
- <i class="icon-uhr-standort"></i> |
|
17 |
+ <i class="icon-standort-outline"></i> |
|
18 | 18 |
<div class="t-label">Standort</div> |
19 | 19 |
</div> |
20 | 20 |
<div class="">{{ standort.title }}</div> |
21 | 21 |
</div> |
22 |
- </div> |
|
23 | 22 |
|
24 |
- <div class="row"> |
|
25 |
- <div class="col-md-6"> |
|
23 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
26 | 24 |
<div class="u-flex u-items-center u-gap-1"> |
27 | 25 |
<i class="icon-behaelter-outline"></i> |
28 | 26 |
<div class="t-label">Verfügbare Behälterkapazität</div> |
... | ... |
@@ -30,24 +28,40 @@ |
30 | 28 |
<div class="">{{ slot.behaelterAvailable }}</div> |
31 | 29 |
</div> |
32 | 30 |
|
33 |
- <div class="col-md-6"> |
|
31 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
32 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
33 |
+ <i class="icon-schere-outline"></i> |
|
34 |
+ <div class="t-label">Ernteart</div> |
|
35 |
+ </div> |
|
36 |
+ <div class="">{{ ernteart|join(', ') }}</div> |
|
37 |
+ </div> |
|
38 |
+ |
|
39 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
34 | 40 |
<div class="u-flex u-items-center u-gap-1"> |
35 | 41 |
<i class="icon-reben-outline"></i> |
36 | 42 |
<div class="t-label">Verarbeitete Sorten</div> |
37 | 43 |
</div> |
38 | 44 |
<div class="">{{ slot.sorte|join(', ') }}</div> |
39 | 45 |
</div> |
40 |
- </div> |
|
41 | 46 |
|
42 |
- {% if slot.anmerkungen %} |
|
43 |
- <div> |
|
47 |
+ <div class="grid-c-6 mb-2 mb-0-md"> |
|
44 | 48 |
<div class="u-flex u-items-center u-gap-1"> |
45 |
- <i class="icon-info-outline"></i> |
|
46 |
- <div class="t-label">Anmerkungen</div> |
|
49 |
+ <i class="icon-lage-outline"></i> |
|
50 |
+ <div class="t-label">Lage</div> |
|
47 | 51 |
</div> |
48 |
- {{ slot.anmerkungen|raw }} |
|
52 |
+ <div class="">{{ lage.title }}</div> |
|
49 | 53 |
</div> |
50 |
- {% endif %} |
|
54 |
+ |
|
55 |
+ {% if slot.anmerkungen %} |
|
56 |
+ <div class="grid-c-12 mb-2 mb-0-md"> |
|
57 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
58 |
+ <i class="icon-info-outline"></i> |
|
59 |
+ <div class="t-label">Anmerkungen</div> |
|
60 |
+ </div> |
|
61 |
+ {{ slot.anmerkungen|raw }} |
|
62 |
+ </div> |
|
63 |
+ {% endif %} |
|
64 |
+ </div> |
|
51 | 65 |
</div> |
52 | 66 |
|
53 | 67 |
{% if reservations|length %} |
... | ... |
@@ -8,15 +8,15 @@ |
8 | 8 |
<div class="accordion-dis"> |
9 | 9 |
<div class="bookings"> |
10 | 10 |
{% for booking in bookings %} |
11 |
- <div class="row u-items-center"> |
|
12 |
- <div class="col-10"> |
|
11 |
+ <div class="row u-flex-nowrap-md u-items-center"> |
|
12 |
+ <div class="col-12"> |
|
13 | 13 |
<div class="row"> |
14 | 14 |
<div class="col-3 time pl-0"> |
15 | 15 |
<div class="icon-uhr-outline u-flex u-items-center u-gap-1"> |
16 | 16 |
<span class="t-label">Uhrzeit</span> |
17 | 17 |
{{ booking.slot.time|date('H:i') }} |
18 | 18 |
</div> |
19 |
- <div class="icon-uhr-standort u-flex u-items-center u-gap-1"> |
|
19 |
+ <div class="icon-standort-outline u-flex u-items-center u-gap-1"> |
|
20 | 20 |
<span class="t-label">Standort</span> |
21 | 21 |
{{ booking.standort }} |
22 | 22 |
</div> |
... | ... |
@@ -30,6 +30,7 @@ |
30 | 30 |
<div class="col-6 rebsorten pr-0"> |
31 | 31 |
<div class="icon-reben-outline u-flex u-items-center u-gap-1"> |
32 | 32 |
<div class="t-label">Anliefernde Sorten</div> |
33 |
+ |
|
33 | 34 |
</div> |
34 | 35 |
{{ booking.sorte|join(', ') }} |
35 | 36 |
</div> |
... | ... |
@@ -45,7 +46,7 @@ |
45 | 46 |
</div> |
46 | 47 |
</div> |
47 | 48 |
|
48 |
- <div class="col u-text-right action"> |
|
49 |
+ <div class="col u-text-right u-text-nowrap action"> |
|
49 | 50 |
<a hx-get="/_ajax/vr_wa/v1/slot?do=booking&id={{ booking.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;" class="btn btn--xs m-0">Ändern</a> |
50 | 51 |
<a hx-get="/_ajax/vr_wa/v1/slot?do=delete&id={{ booking.id }}" hx-target="body" hx-swap="beforeend" hx-confirm="Sind Sie sicher, dass Sie diese Reservierung löschen möchten?" href="javascript:;" class="btn btn--xs btn-danger m-0">Löschen</a> |
51 | 52 |
</div> |
... | ... |
@@ -48,44 +48,66 @@ |
48 | 48 |
<div class="accordion-dis"> |
49 | 49 |
<div class="slots"> |
50 | 50 |
{% for slot in slots %} |
51 |
- <div class="row u-items-center{{ not slot.buchbar ? ' error' : '' }}{{ slot.gebucht ? ' booked' : '' }}"> |
|
52 |
- <div class="col-10"> |
|
53 |
- <div class="row"> |
|
54 |
- <div class="col-3 time pl-0"> |
|
55 |
- <div class="icon-uhr-outline u-flex u-items-center u-gap-1"> |
|
51 |
+ <div class="row py-2 u-flex-nowrap-md u-items-center{{ not slot.buchbar ? ' error' : '' }}{{ slot.gebucht ? ' booked' : '' }}"> |
|
52 |
+ <div class="col-12"> |
|
53 |
+ <div class="grid-md u-gap-1"> |
|
54 |
+ <div class="grid-c-3 time bg-white p-1"> |
|
55 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
56 |
+ <i class="icon-uhr-outline"></i> |
|
56 | 57 |
<span class="t-label">Uhrzeit</span> |
57 | 58 |
{{ slot.time|date('H:i') }} |
58 | 59 |
</div> |
59 |
- <div class="icon-uhr-standort u-flex u-items-center u-gap-1"> |
|
60 |
- <span class="t-label">Standort</span> |
|
61 |
- {{ slot.standort }} |
|
62 |
- </div> |
|
63 | 60 |
</div> |
64 |
- <div class="col-3 behaelter"> |
|
65 |
- <div class="icon-behaelter-outline u-flex u-items-center u-gap-1"> |
|
66 |
- <span class="t-label">Verfügbare Behälterkapazität</span> |
|
61 |
+ <div class="grid-c-3 behaelter bg-white p-1"> |
|
62 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
63 |
+ <i class="icon-behaelter-outline"></i> |
|
64 |
+ <span class="t-label">Verfügbare Kapazität</span> |
|
67 | 65 |
{{ slot.behaelterAvailable }} |
68 | 66 |
</div> |
69 | 67 |
</div> |
70 |
- <div class="col-6 rebsorten pr-0"> |
|
71 |
- <div class="icon-reben-outline u-flex u-items-center u-gap-1"> |
|
68 |
+ <div class="grid-c-6 rebsorten bg-white p-1"> |
|
69 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
70 |
+ <i class="icon-reben-outline"></i> |
|
72 | 71 |
<div class="t-label">Verarbeitete Sorten</div> |
72 |
+ |
|
73 | 73 |
</div> |
74 | 74 |
{{ slot.sorte|join(', ') }} |
75 | 75 |
</div> |
76 |
+ <div class="grid-c-3 standort bg-white p-1"> |
|
77 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
78 |
+ <i class="icon-standort-outline"></i> |
|
79 |
+ <span class="t-label">Standort</span> |
|
80 |
+ {{ slot.standort }} |
|
81 |
+ </div> |
|
82 |
+ </div> |
|
83 |
+ <div class="grid-c-3 ernteart bg-white p-1"> |
|
84 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
85 |
+ <i class="icon-schere-outline"></i> |
|
86 |
+ <div class="t-label">Ernteart</div> |
|
87 |
+ {{ slot.ernteart|join(', ') }} |
|
88 |
+ </div> |
|
89 |
+ </div> |
|
90 |
+ <div class="grid-c-6 lage bg-white p-1"> |
|
91 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
92 |
+ <i class="icon-lage-outline"></i> |
|
93 |
+ <span class="t-label">Lage</span> |
|
94 |
+ {{ slot.lage }} |
|
95 |
+ </div> |
|
96 |
+ </div> |
|
76 | 97 |
{% if slot.anmerkungen is defined and slot.anmerkungen %} |
77 |
- <div class="col-12 px-0"> |
|
78 |
- <div class="icon-info-outline u-flex u-items-center u-gap-1"> |
|
98 |
+ <div class="grid-c-12 bg-white p-1"> |
|
99 |
+ <div class="u-flex u-flex-wrap u-gap-1"> |
|
100 |
+ <i class="icon-info-outline"></i> |
|
79 | 101 |
<span class="t-label">Anmerkungen</span> |
102 |
+ {{ slot.anmerkungen|raw }} |
|
103 |
+ <a hx-get="/_ajax/vr_wa/v1/slot?do=annotation&id={{ slot.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;">mehr lesen</a> |
|
80 | 104 |
</div> |
81 |
- {{ slot.anmerkungen|raw }} |
|
82 |
- <a hx-get="/_ajax/vr_wa/v1/slot?do=annotation&id={{ slot.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;">mehr lesen</a> |
|
83 | 105 |
</div> |
84 | 106 |
{% endif %} |
85 | 107 |
</div> |
86 | 108 |
</div> |
87 |
- <div class="col u-text-right action"> |
|
88 |
- <a hx-get="/_ajax/vr_wa/v1/slot?do=details&id={{ slot.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;" class="btn btn--xs m-0">Buchen</a> |
|
109 |
+ <div class="col u-text-right action mt-2 mt-0-md"> |
|
110 |
+ <a hx-get="/_ajax/vr_wa/v1/slot?do=details&id={{ slot.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;" class="btn btn--sm btn-info m-0">Buchen</a> |
|
89 | 111 |
</div> |
90 | 112 |
</div> |
91 | 113 |
{% endfor %} |
... | ... |
@@ -4,6 +4,7 @@ |
4 | 4 |
} |
5 | 5 |
|
6 | 6 |
.header_rebsorte, |
7 |
+.header_lage, |
|
7 | 8 |
.header_leseart { |
8 | 9 |
padding:3px 0 3px 21px; |
9 | 10 |
background-position:left center; |
... | ... |
@@ -16,6 +17,9 @@ |
16 | 17 |
.header_leseart { |
17 | 18 |
background-image:url("/bundles/vonrotenbergweinanlieferung/images/icons/schere.svg"); |
18 | 19 |
} |
20 |
+.header_lage { |
|
21 |
+ background-image:url("/bundles/vonrotenbergweinanlieferung/images/icons/lage.svg"); |
|
22 |
+} |
|
19 | 23 |
|
20 | 24 |
|
21 | 25 |
.t-label { |
22 | 26 |
new file mode 100644 |
... | ... |
@@ -0,0 +1 @@ |
1 |
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="16px" height="16px" viewBox="0 0 600 600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g><path d="M0,430.576c0,-0 61.493,-170.576 160,-170.576c54.263,0 80,40 80,40c0,0 129.683,-140 200,-140c106.288,0 160,305.468 160,305.468c0,-0 -306.34,-82.854 -406.34,-60.432c-89.381,20.041 -193.66,25.54 -193.66,25.54Z" style="fill:#d9c8aa;"/><path d="M0,430.576c0,-0 104.279,-5.499 193.66,-25.54c100,-22.422 406.34,60.432 406.34,60.432l0,163.208l-600,-0l0,-198.1Z" style="fill:#c6d9aa;"/><path d="M73.951,437.09c1.607,-3.338 5.621,-4.745 8.959,-3.139c3.338,1.607 4.745,5.621 3.139,8.959c-4.88,10.806 -8.235,24.657 -10.621,39.333c-2.628,16.165 -3.408,33.339 -4.684,48.639c-2.29,27.452 -4.033,49.019 -4.033,49.019c0.055,3.704 -2.907,6.756 -6.612,6.81c-3.704,0.055 -6.756,-2.907 -6.81,-6.612c-0,0 -2.021,-18.553 -1.027,-43.326c0.361,-9.006 1.45,-18.796 2.769,-28.783c3.394,-25.71 9.484,-52.6 18.92,-70.9Z" style="fill:#259232;"/><path d="M143.288,440.026c-0.015,-3.704 2.981,-6.724 6.686,-6.738c3.704,-0.015 6.724,2.981 6.738,6.686c0.667,21.414 -2.64,56.141 -7.439,85.848c-1.285,7.96 -2.749,15.539 -4.259,22.381c-4.319,19.561 -8.443,33.164 -8.443,33.164c-0.754,3.627 -4.311,5.959 -7.938,5.204c-3.627,-0.754 -5.959,-4.311 -5.204,-7.938c-0,-0 2.403,-21.687 6.817,-48.876c2.493,-15.355 6.27,-32.316 8.726,-48.412c2.382,-15.606 4.088,-30.255 4.316,-41.319Z" style="fill:#259232;"/><path d="M213.951,426.298c1.607,-3.338 5.621,-4.744 8.959,-3.138c3.338,1.606 4.745,5.621 3.139,8.959c-5.056,11.145 -8.47,26.23 -10.869,42.453c-2.557,17.291 -3.278,35.874 -4.518,52.485c-2.198,29.464 -3.95,52.854 -3.95,52.854c0.049,3.704 -2.918,6.751 -6.623,6.801c-3.704,0.049 -6.751,-2.918 -6.801,-6.623c0,0 -2.014,-19.997 -1.095,-46.469c0.336,-9.688 1.392,-20.207 2.665,-30.901c3.372,-28.338 9.523,-57.773 19.093,-76.421Z" style="fill:#259232;"/><path d="M284.311,417.09c1.606,-3.338 5.621,-4.745 8.959,-3.139c3.338,1.607 4.744,5.621 3.138,8.959c-5.192,11.409 -8.674,27.568 -11.117,45.144c-2.539,18.261 -3.266,38.044 -4.525,55.766c-2.217,31.192 -4.054,56.119 -4.054,56.119c0.034,3.704 -2.946,6.739 -6.651,6.773c-3.704,0.034 -6.739,-2.946 -6.773,-6.651c0,0 -1.943,-21.232 -1.002,-49.174c0.346,-10.268 1.408,-21.409 2.675,-32.708c3.429,-30.581 9.687,-62.193 19.35,-81.089Z" style="fill:#259232;"/><path d="M353.729,437.606c1.322,-3.461 5.204,-5.198 8.665,-3.877c3.461,1.322 5.198,5.204 3.877,8.665c-4.006,11.313 -6.973,25.38 -9.215,40.146c-2.475,16.303 -3.43,33.472 -4.981,48.712c-2.803,27.527 -5.365,48.905 -5.365,48.905c-0.086,3.703 -3.163,6.64 -6.867,6.553c-3.703,-0.086 -6.64,-3.163 -6.553,-6.867c-0,0 -1.315,-18.395 0.192,-43.084c0.545,-8.919 1.786,-18.616 3.185,-28.547c3.546,-25.17 9.238,-51.705 17.062,-70.606Z" style="fill:#259232;"/><path d="M422.631,459.087c0.503,-3.67 3.892,-6.241 7.562,-5.737c3.671,0.504 6.241,3.893 5.737,7.563c-2.262,21.533 -5.214,49.257 -8.893,72.626c-1.081,6.866 -2.288,13.339 -3.525,19.158c-3.613,16.99 -6.9,28.461 -6.9,28.461c-0.64,3.649 -4.121,6.093 -7.77,5.454c-3.649,-0.64 -6.093,-4.121 -5.454,-7.77c0,-0 0.768,-15.343 3.892,-36.268c3.773,-25.272 11.232,-58.453 15.351,-83.487Z" style="fill:#259232;"/><path d="M493.355,466.126c-0.522,-3.668 2.031,-7.069 5.699,-7.591c3.668,-0.522 7.069,2.031 7.591,5.699c3.302,18.688 1.749,40.882 -1.857,61.066c-1.489,8.333 -3.16,16.361 -5.313,23.509c-6.02,19.988 -13.223,33.635 -13.223,33.635c-1.349,3.45 -5.246,5.156 -8.696,3.808c-3.45,-1.349 -5.156,-5.246 -3.808,-8.696c0,0 4.393,-16.888 9.79,-39.052c2.925,-12.012 6.809,-25.406 8.716,-38.985c1.614,-11.489 2.273,-22.968 1.101,-33.393Z" style="fill:#259232;"/></g></svg> |
|
0 | 2 |
\ No newline at end of file |
1 | 3 |
new file mode 100644 |
... | ... |
@@ -0,0 +1 @@ |
1 |
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 413 413" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="412.5" height="412.5" style="fill:none;"/><g id="Artboard11" serif:id="Artboard1"><g id="Lage"><clipPath id="_clip1"><path d="M412.5,61.875c-0,-34.15 -27.725,-61.875 -61.875,-61.875l-288.75,0c-34.15,0 -61.875,27.725 -61.875,61.875l0,288.75c0,34.15 27.725,61.875 61.875,61.875l288.75,-0c34.15,-0 61.875,-27.725 61.875,-61.875l-0,-288.75Z"/></clipPath><g clip-path="url(#_clip1)"><path d="M113.439,285.977c17.847,4.311 32.184,13.91 39.947,24.756c6.252,8.734 8.503,18.372 6.304,27.477c-2.199,9.105 -8.601,16.653 -18.15,21.57c-11.858,6.106 -28.997,8.104 -46.844,3.793c-17.847,-4.311 -32.184,-13.911 -39.948,-24.756c-6.252,-8.734 -8.502,-18.372 -6.303,-27.477c2.199,-9.105 8.601,-16.653 18.15,-21.57c11.858,-6.107 28.996,-8.104 46.844,-3.793Zm-2.348,9.72c-25.334,-6.119 -49.049,1.942 -52.926,17.991c-3.876,16.048 13.545,34.045 38.879,40.164c25.334,6.12 49.049,-1.942 52.925,-17.99c3.877,-16.048 -13.544,-34.046 -38.878,-40.165Z"/><path d="M117.546,268.971c26.737,6.458 48.298,20.706 59.929,36.953c8.83,12.336 12.167,25.911 9.061,38.77c-3.106,12.859 -12.271,23.414 -25.758,30.36c-17.765,9.147 -43.452,11.983 -70.189,5.525c-26.737,-6.458 -48.299,-20.706 -59.929,-36.954c-8.83,-12.335 -12.167,-25.91 -9.061,-38.769c3.106,-12.859 12.271,-23.415 25.758,-30.36c17.764,-9.148 43.452,-11.983 70.189,-5.525Zm-2.348,9.72c-40.15,-9.698 -77.735,3.078 -83.879,28.513c-6.143,25.434 21.467,53.957 61.618,63.655c40.15,9.697 77.735,-3.079 83.878,-28.513c6.144,-25.434 -21.466,-53.957 -61.617,-63.655Z"/><path d="M127.476,227.859c44.114,10.655 79.46,35.371 98.128,64.338c13.227,20.524 18.245,43.225 12.97,65.066c-5.276,21.841 -20.102,39.748 -41.239,51.973c-29.831,17.252 -72.562,23.11 -116.676,12.454c-44.115,-10.655 -79.46,-35.371 -98.128,-64.337c-13.227,-20.525 -18.245,-43.225 -12.97,-65.066c5.276,-21.841 20.102,-39.749 41.239,-51.973c29.831,-17.252 72.562,-23.11 116.676,-12.455Zm-2.348,9.721c-68.871,-16.635 -134.223,8.93 -145.846,57.055c-11.624,48.124 34.853,100.7 103.725,117.335c68.871,16.635 134.222,-8.931 145.846,-57.055c11.624,-48.124 -34.854,-100.7 -103.725,-117.335Z"/><path d="M-7.166,162.489c-2.753,0.184 -5.138,-1.901 -5.323,-4.655c-0.184,-2.753 1.901,-5.138 4.655,-5.323c-0,0 47.508,-3.187 96.338,4.37c33.219,5.141 66.954,15.37 87.408,34.464c49.424,46.138 63.804,81.529 101.812,112.267c39.315,31.796 53.437,56.558 57.266,116.067c0.177,2.754 -1.915,5.134 -4.669,5.311c-2.754,0.177 -5.134,-1.915 -5.311,-4.669c-3.59,-55.816 -16.698,-79.11 -53.575,-108.933c-38.184,-30.881 -52.693,-66.38 -102.347,-112.733c-19.177,-17.902 -50.969,-27.072 -82.114,-31.892c-47.716,-7.384 -94.14,-4.274 -94.14,-4.274Z"/><path d="M-22.302,94.996c-2.757,0.11 -5.085,-2.04 -5.194,-4.798c-0.11,-2.757 2.04,-5.085 4.798,-5.194c-0,-0 72.481,-2.866 119.607,2.6c14.765,1.713 27.122,4.319 34.362,7.917c4.146,2.06 6.859,4.589 8.191,7.223c3.035,6.002 12.455,16.433 24.312,28.401c28.54,28.807 71.268,65.821 78.988,70.937c5.439,3.604 21.963,9.181 39.267,16.149c18.412,7.413 37.604,16.372 46.858,25.759c11.004,11.163 25.109,34.386 34.219,56.549c6.238,15.178 10.067,29.892 9.383,40.045c-0.572,8.491 4.322,17.057 11.12,25.505c11.4,14.167 28.402,27.674 39.876,38.829c1.979,1.924 2.024,5.092 0.1,7.071c-1.924,1.978 -5.092,2.023 -7.07,0.099c-11.725,-11.398 -29.047,-25.253 -40.696,-39.73c-8.569,-10.648 -14.029,-21.745 -13.308,-32.446c0.609,-9.038 -3.101,-22.061 -8.654,-35.571c-8.579,-20.87 -21.729,-42.819 -32.092,-53.331c-8.552,-8.675 -26.455,-16.652 -43.471,-23.503c-18.124,-7.298 -35.359,-13.314 -41.056,-17.089c-7.869,-5.215 -51.479,-42.874 -80.568,-72.235c-12.841,-12.961 -22.845,-24.426 -26.132,-30.927c-0.861,-1.703 -3.307,-2.769 -6.512,-3.988c-6.766,-2.572 -16.724,-4.391 -28.269,-5.73c-46.516,-5.396 -118.059,-2.542 -118.059,-2.542Z"/><path d="M-8.711,-10.149c-2.678,-0.669 -4.309,-3.385 -3.64,-6.062c0.669,-2.678 3.385,-4.309 6.062,-3.64c0,-0 108.827,27.201 186.602,75.606c38.524,23.976 71.368,39.069 98.621,54.663c28.064,16.058 50.305,32.704 66.958,59.438c19.43,31.194 38.058,68.16 55.726,95.967c11.22,17.659 21.846,31.603 32.208,37.295c2.419,1.328 3.304,4.37 1.975,6.789c-1.329,2.419 -4.371,3.304 -6.79,1.975c-11.401,-6.262 -23.487,-21.264 -35.833,-40.697c-17.683,-27.829 -36.328,-64.823 -55.774,-96.041c-15.744,-25.276 -36.904,-40.865 -63.436,-56.046c-27.343,-15.646 -60.289,-30.798 -98.939,-54.853c-76.575,-47.658 -183.74,-74.394 -183.74,-74.394Z"/><path d="M137.908,-26.566c0.977,0.355 6.835,2.483 14.098,5.005c22.849,7.935 66.826,23.623 103.446,44.536c25.145,14.359 46.765,31.294 56.47,49.692c28.703,54.41 25.747,47.271 130.012,102.922c2.434,1.299 3.356,4.331 2.057,6.765c-1.3,2.435 -4.331,3.356 -6.766,2.057c-107.926,-57.606 -104.437,-50.758 -134.147,-107.078c-10.143,-19.227 -34.653,-36.31 -61.669,-50.677c-41.742,-22.199 -89.716,-37.582 -103.914,-42.686c-3.344,-1.202 -5.263,-2.231 -5.694,-2.602c-1.057,-0.908 -1.439,-1.873 -1.624,-2.548c-0.728,-2.662 0.842,-5.414 3.503,-6.143c1.509,-0.412 3.046,-0.087 4.228,0.757Z"/><path d="M219.938,-6.425c-2.663,-0.725 -4.237,-3.475 -3.513,-6.137c0.725,-2.663 3.475,-4.237 6.137,-3.513c0,0 61.817,16.815 116.164,51.325c36.931,23.451 70.237,55.12 79.474,94.868c0.624,2.688 -1.051,5.378 -3.739,6.002c-2.688,0.625 -5.377,-1.05 -6.002,-3.738c-8.673,-37.324 -40.415,-66.669 -75.094,-88.69c-53.067,-33.697 -113.427,-50.117 -113.427,-50.117Z"/><path d="M412.5,61.875l-0,288.75c-0,34.15 -27.725,61.875 -61.875,61.875l-288.75,-0c-34.15,-0 -61.875,-27.725 -61.875,-61.875l0,-288.75c0,-34.15 27.725,-61.875 61.875,-61.875l288.75,0c34.15,0 61.875,27.725 61.875,61.875Zm-10,0c-0,-28.631 -23.244,-51.875 -51.875,-51.875l-288.75,0c-28.631,0 -51.875,23.244 -51.875,51.875l-0,288.75c-0,28.631 23.244,51.875 51.875,51.875l288.75,-0c28.631,-0 51.875,-23.244 51.875,-51.875l-0,-288.75Z"/></g></g></g></svg> |
|
0 | 2 |
\ No newline at end of file |
1 | 3 |
new file mode 100644 |
... | ... |
@@ -0,0 +1 @@ |
1 |
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 413 413" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="412.5" height="412.5" style="fill:none;"/><g id="Artboard11" serif:id="Artboard1"><g id="schere"><path d="M190.481,258.335c-8.827,3.866 -17.026,10.925 -24.444,20.275c-19.659,24.778 -33.384,65.238 -37.148,112.189c-0.417,5.196 -4.755,9.201 -9.968,9.201l-20.049,-0c-2.784,0 -5.442,-1.161 -7.335,-3.203c-1.892,-2.043 -2.847,-4.782 -2.636,-7.558c4.015,-52.586 19.407,-98.22 40.439,-128.29c10.669,-15.254 22.922,-26.827 36.068,-34.543c-0.269,-1.887 -0.408,-3.816 -0.408,-5.778c-0,-2.519 0.23,-4.986 0.67,-7.379c-0.978,-0.532 -1.956,-1.09 -2.933,-1.675c-20.88,-12.493 -42.217,-37.768 -56.191,-70.687c-13.973,-32.919 -17.332,-65.825 -11.814,-89.523c4.548,-19.536 15.088,-33.417 29.602,-39.578c7.625,-3.237 16.431,0.321 19.668,7.947l61.766,145.512l61.767,-145.512c3.237,-7.626 12.043,-11.184 19.668,-7.947c14.514,6.161 25.054,20.042 29.602,39.578c5.518,23.698 2.159,56.604 -11.814,89.523c-13.974,32.919 -35.311,58.194 -56.191,70.687c-1.062,0.635 -2.125,1.24 -3.188,1.813c0.424,2.35 0.645,4.77 0.645,7.241c-0,1.857 -0.125,3.685 -0.367,5.476c13.343,7.715 25.778,19.391 36.587,34.845c21.032,30.07 36.424,75.704 40.439,128.29c0.212,2.776 -0.744,5.515 -2.636,7.558c-1.893,2.042 -4.551,3.203 -7.335,3.203l-20.049,0c-5.213,0 -9.551,-4.005 -9.968,-9.201c-3.764,-46.951 -17.489,-87.411 -37.147,-112.189c-7.495,-9.446 -15.786,-16.553 -24.716,-20.393c-4.76,1.959 -9.973,3.04 -15.437,3.04c-5.353,-0 -10.465,-1.038 -15.147,-2.922Zm15.147,-57.078c-10.691,-0 -19.371,8.68 -19.371,19.371c-0,10.692 8.68,19.372 19.371,19.372c10.692,0 19.372,-8.68 19.372,-19.372c-0,-10.691 -8.68,-19.371 -19.372,-19.371Zm34.546,-2.011c19.036,-10.999 38.267,-34.2 51.009,-64.22c20.894,-49.223 16.484,-98.258 -9.841,-109.432l-66.035,155.568c10.461,2.561 19.338,9.177 24.867,18.084Zm-43.971,-18.145l-66.008,-155.507c-26.326,11.174 -30.735,60.209 -9.841,109.432c12.696,29.912 31.834,53.054 50.804,64.1c5.578,-8.918 14.521,-15.521 25.045,-18.025Z"/></g></g></svg> |
|
0 | 2 |
\ No newline at end of file |
... | ... |
@@ -149,6 +149,15 @@ class SlotAjaxController extends AbstractController |
149 | 149 |
$arrSorten = array_combine($Sorten->fetchEach('id'),$Sorten->fetchEach('title')); |
150 | 150 |
}*/ |
151 | 151 |
|
152 |
+ $arrErnteart = []; |
|
153 |
+ if ($Slot->ernteart !== null) |
|
154 |
+ { |
|
155 |
+ foreach (explode(',', $Slot->ernteart) as $ernteart) |
|
156 |
+ { |
|
157 |
+ $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$ernteart] ?? $ernteart; |
|
158 |
+ } |
|
159 |
+ } |
|
160 |
+ |
|
152 | 161 |
$intAvailableBehaelter = $Slot->getAvailableBehaelter(); |
153 | 162 |
|
154 | 163 |
$arrData = [ |
... | ... |
@@ -159,6 +168,8 @@ class SlotAjaxController extends AbstractController |
159 | 168 |
'behaelterAvailable' => $intAvailableBehaelter |
160 | 169 |
]), |
161 | 170 |
'standort' => $Slot->getRelated('pid'), |
171 |
+ 'lage' => $Slot->getRelated('lage'), |
|
172 |
+ 'ernteart' => $arrErnteart, |
|
162 | 173 |
'buchen' => [ |
163 | 174 |
'buchbar' => (boolean) $intAvailableBehaelter, |
164 | 175 |
'behaelter' => range(min($intAvailableBehaelter,1),$intAvailableBehaelter), |
... | ... |
@@ -197,6 +208,15 @@ class SlotAjaxController extends AbstractController |
197 | 208 |
$arrSorten[$objSorte->id.','.$objLeseart->id] = ($objSorte !== null ? $objSorte->title : '') . ' ' . ($objLeseart !== null ? $objLeseart->title : ''); |
198 | 209 |
} |
199 | 210 |
|
211 |
+ $arrErnteart = []; |
|
212 |
+ if ($Slot->ernteart !== null) |
|
213 |
+ { |
|
214 |
+ foreach (explode(',', $Slot->ernteart) as $ernteart) |
|
215 |
+ { |
|
216 |
+ $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$ernteart] ?? $ernteart; |
|
217 |
+ } |
|
218 |
+ } |
|
219 |
+ |
|
200 | 220 |
$intAvailableBehaelter = $Slot->getAvailableBehaelter(); |
201 | 221 |
|
202 | 222 |
$arrData = [ |
... | ... |
@@ -207,6 +227,8 @@ class SlotAjaxController extends AbstractController |
207 | 227 |
'behaelterAvailable' => $intAvailableBehaelter |
208 | 228 |
]), |
209 | 229 |
'standort' => $Slot->getRelated('pid'), |
230 |
+ 'lage' => $Slot->getRelated('lage'), |
|
231 |
+ 'ernteart' => $arrErnteart, |
|
210 | 232 |
'buchen' => [ |
211 | 233 |
'buchbar' => (boolean) $intAvailableBehaelter, |
212 | 234 |
'behaelter' => range(min($intAvailableBehaelter,1),$intAvailableBehaelter), |
... | ... |
@@ -59,6 +59,7 @@ class WeinanlieferungBookedListModuleController extends AbstractFrontendModuleCo |
59 | 59 |
{ |
60 | 60 |
$day = new Date($Slot->date); |
61 | 61 |
$arrSorten = []; |
62 |
+ $arrErnteart = []; |
|
62 | 63 |
|
63 | 64 |
$SortenLeseart = explode(';',$booking->sorten); |
64 | 65 |
foreach($SortenLeseart as $sorteLeseart) |
... | ... |
@@ -110,14 +110,23 @@ class WeinanlieferungSlotsListModuleController extends AbstractFrontendModuleCon |
110 | 110 |
{ |
111 | 111 |
$day = new Date($slot->date); |
112 | 112 |
$arrSorten = []; |
113 |
+ $arrErnteart = []; |
|
113 | 114 |
$intAvailableBehaelter = $slot->getAvailableBehaelter(); |
114 | 115 |
|
115 |
- $Sorten = StringUtil::deserialize($slot->sorten,true); |
|
116 |
- foreach($Sorten as $sorte) |
|
116 |
+ $Sorten = StringUtil::deserialize($slot->sorten, true); |
|
117 |
+ foreach ($Sorten as $sorte) |
|
117 | 118 |
{ |
118 | 119 |
$objSorte = WeinanlieferungRebsorteModel::findByPk($sorte['sorte']); |
119 | 120 |
$objLeseart = WeinanlieferungLeseartModel::findByPk($sorte['leseart']); |
120 |
- $arrSorten[] = ($objSorte !== null ? $objSorte->title : '') . ' ' . ($objLeseart !== null ? $objLeseart->title : ''); |
|
121 |
+ $arrSorten[] = ($objSorte !== null ? $objSorte->title : '') . ' ' . ($objLeseart !== null ? $objLeseart->title : ''); |
|
122 |
+ } |
|
123 |
+ |
|
124 |
+ if ($slot->ernteart !== null) |
|
125 |
+ { |
|
126 |
+ foreach (explode(',', $slot->ernteart) as $ernteart) |
|
127 |
+ { |
|
128 |
+ $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$ernteart] ?? $ernteart; |
|
129 |
+ } |
|
121 | 130 |
} |
122 | 131 |
|
123 | 132 |
$strStandort = ''; |
... | ... |
@@ -126,10 +135,18 @@ class WeinanlieferungSlotsListModuleController extends AbstractFrontendModuleCon |
126 | 135 |
$strStandort = $Standort->title; |
127 | 136 |
} |
128 | 137 |
|
138 |
+ $strLage = ''; |
|
139 |
+ if (($Lage = $slot->getRelated('lage')) !== null) |
|
140 |
+ { |
|
141 |
+ $strLage = $Lage->title; |
|
142 |
+ } |
|
143 |
+ |
|
129 | 144 |
$arrData['days'][$day->dayBegin][] = array_merge($slot->row(),[ |
130 | 145 |
'anmerkungen' => $slot->anmerkungen ? StringUtil::substr(strip_tags($slot->anmerkungen),110) : '', |
131 | 146 |
'standort' => $strStandort, |
147 |
+ 'lage' => $strLage, |
|
132 | 148 |
'sorte' => $arrSorten, |
149 |
+ 'ernteart' => $arrErnteart, |
|
133 | 150 |
'behaelterAvailable' => $intAvailableBehaelter, |
134 | 151 |
'buchbar' => (boolean) $intAvailableBehaelter, |
135 | 152 |
'gebucht' => (boolean) WeinanlieferungReservationModel::countBy(["uid = ?","pid = ?"],[FrontendUser::getInstance()->id,$slot->id]) |
... | ... |
@@ -56,6 +56,27 @@ class WeinanlieferungReservationContainerListener |
56 | 56 |
} |
57 | 57 |
|
58 | 58 |
/** |
59 |
+ * @Callback(table="tl_vr_wa_reservation", target="fields.ernteart.options") |
|
60 |
+ */ |
|
61 |
+ public function onErnteartOptionsCallback(DataContainer $dc) |
|
62 |
+ { |
|
63 |
+ $arrErnteart = []; |
|
64 |
+ |
|
65 |
+ if (($Slot = WeinanlieferungSlotsModel::findByPk($dc->activeRecord->pid)) === null || $Slot->ernteart === null) |
|
66 |
+ { |
|
67 |
+ return $arrErnteart; |
|
68 |
+ } |
|
69 |
+ |
|
70 |
+ $Ernteart = explode(',',$Slot->ernteart); |
|
71 |
+ foreach($Ernteart as $art) |
|
72 |
+ { |
|
73 |
+ $arrErnteart[] = $GLOBALS['TL_LANG']['REF']['wa_ernteart'][$art] ?? $art; |
|
74 |
+ } |
|
75 |
+ |
|
76 |
+ return $arrErnteart; |
|
77 |
+ } |
|
78 |
+ |
|
79 |
+ /** |
|
59 | 80 |
* @Callback(table="tl_vr_wa_reservation", target="fields.pid.options") |
60 | 81 |
*/ |
61 | 82 |
public function onPidOptionsCallback(DataContainer $dc) |
62 | 83 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,24 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+declare(strict_types=1); |
|
4 |
+ |
|
5 |
+/* |
|
6 |
+ * This file is part of contao-weinanlieferung-bundle. |
|
7 |
+ * |
|
8 |
+ * (c) vonRotenberg |
|
9 |
+ * |
|
10 |
+ * @license commercial |
|
11 |
+ */ |
|
12 |
+ |
|
13 |
+namespace vonRotenberg\WeinanlieferungBundle\Model; |
|
14 |
+ |
|
15 |
+use Contao\Model; |
|
16 |
+ |
|
17 |
+class WeinanlieferungLageModel extends Model |
|
18 |
+{ |
|
19 |
+ /** |
|
20 |
+ * Table name |
|
21 |
+ * @var string |
|
22 |
+ */ |
|
23 |
+ protected static $strTable = 'tl_vr_wa_lage'; |
|
24 |
+} |