Skip to content

Commit 646146a

Browse files
committed
Merge branch 'develop'
2 parents c0cfb39 + ec7f7c5 commit 646146a

195 files changed

Lines changed: 1036 additions & 65283 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
workflow_dispatch:
55
pull_request:
66
branches:
7-
- 'develop'
7+
- '!develop'
88

99
jobs:
1010
build:

.github/workflows/unittests.yml

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
branches:
77
- '*'
88
- '!release_doc'
9+
pull_request:
10+
branches:
11+
- 'develop'
912

1013
jobs:
1114
build:
@@ -24,24 +27,44 @@ jobs:
2427
sudo apt-get install gcc --only-upgrade
2528
2629
- name: Get branch name
27-
run: |
28-
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
29-
echo ${GITHUB_REF#refs/heads/}
30+
run: echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >>$GITHUB_OUTPUT
3031
id: extract_branch
3132

32-
- name: Checkout core from ${{steps.extract_branch.outputs.branch}} branch
33+
- name: Workflow Information
34+
run: |
35+
echo github.event_name '${{ github.event_name }}'
36+
echo github.workflow '${{ github.workflow }}'
37+
echo github.action_repository '${{ github.action_repository }}'
38+
echo github.actor '${{ github.actor }}'
39+
echo github.ref_name '${{ github.ref_name }}'
40+
echo github.ref '${{ github.ref }}'
41+
echo github.base_ref '${{ github.base_ref }}'
42+
echo github.head_ref '${{ github.head_ref }}'
43+
echo github.pull_request.base.ref '${{ github.pull_request.base.ref }}'
44+
echo steps.extract_branch.outputs.branch '${{ steps.extract_branch.outputs.branch }}'
45+
46+
- name: Checkout core from branch '${{ github.base_ref }} branch'
3347
uses: actions/checkout@v3
3448
with:
3549
repository: smarthomeNG/smarthome
36-
ref: ${{steps.extract_branch.outputs.branch}}
50+
ref: ${{ github.base_ref }}
3751

38-
- name: Checkout plugins from ${{steps.extract_branch.outputs.branch}} branch (${{ github.event.pull_request.base.ref }})
52+
- name: Checkout plugins from branch '${{steps.extract_branch.outputs.branch}}' (for push)
53+
if: github.event_name != 'pull_request'
3954
uses: actions/checkout@v3
4055
with:
4156
repository: smarthomeNG/plugins
4257
ref: ${{steps.extract_branch.outputs.branch}}
4358
path: plugins
4459

60+
- name: Checkout plugins from branch 'develop' (for pull request)
61+
if: github.event_name == 'pull_request'
62+
uses: actions/checkout@v3
63+
with:
64+
repository: smarthomeNG/plugins
65+
ref: develop
66+
path: plugins
67+
4568
- name: Set up Python
4669
uses: actions/setup-python@v3
4770
with:

bin/shngversion.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,13 @@
9494
# Update auf 1.9.3.5 wg. Veränderungen am websocket Modul
9595

9696
# Update auf 1.9.4 wg. Release
97+
# Update auf 1.9.4.1 wg. Kennzeichnung des Repo Stands als "nach dem v1.9.4 Release"
9798

98-
shNG_version = '1.9.4'
99+
# Update auf 1.9.5 wg. Release
100+
101+
shNG_version = '1.9.5'
99102
shNG_branch = 'master'
100-
shNG_releasedate = '14. März 2023' # Muss beim Release für den master branch auf das Release Datum gesetzt werden
103+
shNG_releasedate = '31. März 2023' # Muss beim Release für den master branch auf das Release Datum gesetzt werden
101104

102105
# ---------------------------------------------------------------------------------
103106
FileBASE = None

dev/sample_mqttplugin/webif/templates/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124
-->
125125
{% set tab1title = "<strong>" ~ p.get_shortname() ~ " Items</strong> (" ~ item_count ~ ")" %}
126126
{% block bodytab1 %}
127-
<div class="container-fluid m-2 table-resize">
127+
128128
<!-- remove this div if not needed -->
129129
<div class="mb-2">
130130
{{ _('Hier kommt der Inhalt des Webinterfaces hin.') }} (optional)
@@ -161,7 +161,7 @@
161161
<div class="mb-2">
162162
Etwaige Informationen unterhalb der Tabelle (optional)
163163
</div>
164-
</div>
164+
165165
{% endblock bodytab1 %}
166166

167167

dev/sample_plugin/webif/templates/index.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@
193193
-->
194194
{% set tab1title = "<strong>" ~ p.get_shortname() ~ " Items</strong> (" ~ item_count ~ ")" %}
195195
{% block bodytab1 %}
196-
<div class="container-fluid m-2 table-resize">
197196
<!-- remove this div if not needed -->
198197
<div class="mb-2">
199198
{{ _('Hier kommt der Inhalt des Webinterfaces hin.') }} (optional)
@@ -226,7 +225,7 @@
226225
<div class="mb-2">
227226
Etwaige Informationen unterhalb der Tabelle (optional)
228227
</div>
229-
</div>
228+
230229
{% endblock bodytab1 %}
231230

232231

doc/build_plugin_config_files.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,10 @@ def build_pluginlist( plugin_type='all' ):
233233
else:
234234
plugin_yaml = ''
235235
if plugin_yaml != '':
236-
section_dict = plugin_yaml.get('plugin')
236+
try:
237+
section_dict = plugin_yaml.get('plugin')
238+
except Exception as e:
239+
raise AttributeError(f"'{metafile}: Exception {e}")
237240
if section_dict != None:
238241
if section_dict.get('type') != None:
239242
if section_dict.get('type').lower() in plugin_types:

doc/user/source/entwicklung/plugins/webinterface_automatic_update.rst

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ Bei Tabellen im bodytab werden die einzelnen Datenzeilen beim Rendern durch die
107107
.. code-block:: html+jinja
108108

109109
{% block **bodytab1** %}
110-
<div class="container-fluid m-2 table-resize">
111-
<table id="maintable">
110+
<table id="maintable" class="dataTableAdditional">
112111
<thead>
113112
<tr>
114113
<th></th>
@@ -130,7 +129,6 @@ Bei Tabellen im bodytab werden die einzelnen Datenzeilen beim Rendern durch die
130129
{% endfor %}
131130
</tbody>
132131
</table>
133-
</div>
134132
{% endblock **bodytab1** %}
135133

136134

@@ -157,8 +155,7 @@ pro Zeile eine leere Zelle einzufügen! Bei headtables sollten leere Spalten ver
157155
...
158156

159157
{% block **bodytab1** %}
160-
<div class="container-fluid m-2 table-resize">
161-
<table id="maintable">
158+
<table id="maintable" class="dataTableAdditional">
162159
<thead>
163160
<tr>
164161
<th></th>
@@ -176,18 +173,16 @@ pro Zeile eine leere Zelle einzufügen! Bei headtables sollten leere Spalten ver
176173
{% endfor %}
177174
</tbody>
178175
</table>
179-
</div>
180176
{% endblock **bodytab1** %}
181177

182178
Jetzt können die DOM-Elemente über die IDs ``fromip`` und ``<item>_value`` angesprochen werden.
183179

184180
.. warning::
185181

186182
Damit die Anzeige und Adaption der Datatables einwandfrei funktioniert, ist es elementar, den
187-
Aufbau sauber und exakt aus dem Sampleplugin zu übernehmen. So muss beispielsweise die Tabelle
188-
selbst in ein div gepackt werden, dem die Klasse ``table-resize`` zugewiesen ist. Außerdem
189-
müssen leere Zellen am Anfang jeder Zeile eingefügt werden. Ein Angabe von Klassen ist nicht nötig,
190-
da dies automatisch passiert.
183+
Aufbau sauber und exakt aus dem Sampleplugin zu übernehmen. So müssen leere Zellen am Anfang jeder Zeile eingefügt werden. Eine Angabe von Klassen ist nicht nötig,
184+
da dies automatisch passiert, wobei die Klasse ``dataTableAdditional`` gegebenenfalls
185+
zu einem schnelleren Laden führen kann.
191186

192187

193188
Erweitern der JavaScript-Funktion handleUpdatedData()

doc/user/source/entwicklung/plugins/webinterface_filling_webinterface.rst

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,15 @@ Die folgenden Schritte dienen dazu, das Webinterface mit Leben zu füllen:
8888
sowie der jeweiligen End-Tags. Außerdem muss jeder Tabelle eine einzigartige ID vergeben werden.
8989
Sowohl im Tablehead als auch Tablebody ist eine leere erste Spalte einzufügen, die für das responsive
9090
Feature der Datatables genutzt wird.
91-
Die Klasse``table-resize`` ist zwingend dem ``<div>`` Tag, in dem sich die Tabelle befindet, hinzuzufügen,
92-
um die automatische Anpassung der Datentabelle an die Fensterhöhe zu ermöglichen
93-
(siehe auch index.html im Example-Plugin). Sollen ober- oder unterhalb der Tabelle zusätzliche Informationen
91+
Sollen ober- oder unterhalb der Tabelle zusätzliche Informationen
9492
angezeigt werden, müssen diese in einem ``<div class="mb-2">`` Tag stehen.
9593

9694
.. code-block:: html+jinja
9795

98-
<div class="container-fluid m-2 table-resize">
9996
<div class="mb-2">
10097
Informationen oberhalb der Tabelle
10198
</div>
102-
<table id="maintable">
99+
<table id="maintable" class="dataTableAdditional">
103100
<thead>
104101
<tr>
105102
<th></th>
@@ -122,7 +119,6 @@ Die folgenden Schritte dienen dazu, das Webinterface mit Leben zu füllen:
122119
<div class="mb-2">
123120
Informationen unterhalb der Tabelle
124121
</div>
125-
</div>
126122

127123

128124

doc/user/source/entwicklung/plugins/webinterface_plugin_interaction.rst

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ Tabellen in einem ``bodytab?`` können mit einer Schleife befüllt werden, das i
132132

133133
{% block **bodytab1** %}
134134

135-
<div class="container-fluid m-2 table-resize">
136-
<table id="maintable">
135+
<table id="maintable" class="dataTableAdditional">
137136
<thead>
138137
<tr>
139138
<th></th>
@@ -155,7 +154,6 @@ Tabellen in einem ``bodytab?`` können mit einer Schleife befüllt werden, das i
155154
{% endfor %}
156155
</tbody>
157156
</table>
158-
</div>
159157
{% endblock **bodytab1** %}
160158

161159

@@ -183,8 +181,7 @@ Damit die IDs in den Wertetabellen eindeutig sind, verwenden wir die Variable au
183181
...
184182

185183
{% block **bodytab1** %}
186-
<div class="container-fluid m-2 table-resize">
187-
<table id="maintable">
184+
<table id="maintable" class="dataTableAdditional">
188185
<thead>
189186
<tr>
190187
<th></th>
@@ -206,7 +203,6 @@ Damit die IDs in den Wertetabellen eindeutig sind, verwenden wir die Variable au
206203
{% endfor %}
207204
</tbody>
208205
</table>
209-
</div>
210206
{% endblock **bodytab1** %}
211207

212208
Jetzt können die DOM-Elemente über die IDs ``fromip`` und ``<elem>_value`` angesprochen werden.
@@ -233,49 +229,45 @@ Wie weiter unten beschrieben, ist für jeden Button, der auf diese Weise impleme
233229
eine eigene Handler-Routine erforderlich.
234230

235231
Wenn mehrere Buttons dieser Art vorgesehen sind, oder z.B. in einer Wertetabelle ein Button
236-
in jeder Zeile stehen soll, dann bietet es sich an, statt einzelnen Button-Elementen eine Formularkonstruktion zu nutzen:
232+
in jeder Zeile stehen soll, dann bietet es sich an, statt einzelnen Button-Elementen eine Formularkonstruktion zu nutzen. Um das automatische Skalieren von Tabellen zu gewährleisten,
233+
sollte das ``form`` Element NACH der Tabelle deklariert werden.
237234

238235
.. code-block:: html+jinja
239236

240237
{% block bodytab1 %}
241-
<div class="container-fluid m-2 table-resize">
242-
243-
<form id="button_pressed" action="" method="post">
244-
245-
<input type="hidden" id="button" name="button" value="" />
246-
<table id="maintable">
247-
<thead>
238+
<table id="maintable" class="dataTableAdditional">
239+
<thead>
240+
<tr>
241+
<th></th>
242+
<th>{{ _('Attribut 1') }}</th>
243+
<th>{{ _('Attribut 2') }}</th>
244+
<th>{{ _('aktualisieren') }}</th>
245+
<th>{{ _('Wert') }}</th>
246+
</tr>
247+
</thead>
248+
<tbody>
249+
{% for elem in data %}
248250
<tr>
249-
<th></th>
250-
<th>{{ _('Attribut 1') }}</th>
251-
<th>{{ _('Attribut 2') }}</th>
252-
<th>{{ _('aktualisieren') }}</th>
253-
<th>{{ _('Wert') }}</th>
251+
<td></td>
252+
<td>{{ data[elem]['attr1'] }}</td>
253+
<td>{{ data[elem]['attr2'] }}</td>
254+
<td>
255+
<button
256+
class="btn btn-shng btn-sm"
257+
type="button"
258+
onclick="$('#button').val('{{ elem }}');$('#button_pressed').submit();"
259+
>lesen
260+
</button>
261+
</td>
262+
<td id="{{ elem }}_value">{{ data[elem]['wert']</td>
254263
</tr>
255-
</thead>
256-
<tbody>
257-
{% for elem in data %}
258-
<tr>
259-
<td></td>
260-
<td>{{ data[elem]['attr1'] }}</td>
261-
<td>{{ data[elem]['attr2'] }}</td>
262-
<td>
263-
<button
264-
class="btn btn-shng btn-sm"
265-
type="button"
266-
onclick="$('#button').val('{{ elem }}');$('#button_pressed').submit();"
267-
>lesen
268-
</button>
269-
</td>
270-
<td id="{{ elem }}_value">{{ data[elem]['wert']</td>
271-
</tr>
272-
{% endfor %}
273-
</tbody>
274-
</table>
275-
264+
{% endfor %}
265+
</tbody>
266+
</table>
267+
<form id="button_pressed" action="" method="post">
268+
<input type="hidden" id="button" name="button" value="" />
276269
</form>
277270

278-
</div>
279271
{% endblock bodytab1 %}
280272

281273

0 commit comments

Comments
 (0)