diff --git a/dashboards/views/04c_madplan.yaml b/dashboards/views/04c_madplan.yaml index 8775969..744b548 100644 --- a/dashboards/views/04c_madplan.yaml +++ b/dashboards/views/04c_madplan.yaml @@ -64,72 +64,33 @@ cards: action: call-service service: script.mad_announcement - # 📅 Ugens madplan - - type: custom:button-card - entity: sensor.mealie_madplan_ugen - name: Ugens madplan - show_icon: false - show_name: true - show_state: false - styles: - card: - - padding: 0 - - border-radius: 12px - name: - - font-size: 16px - - font-weight: bold - - padding: 12px 12px 4px 12px - - justify-self: start - custom_fields: - week: | - [[[ - if (!entity || !entity.attributes || !entity.attributes.items) - return '
Ingen madplan data
'; - var items = entity.attributes.items; - var dayNames = ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag']; - var today = new Date().toISOString().slice(0,10); - var meals = {}; - for (var j = 0; j < items.length; j++) { - var it = items[j]; - if (it.recipe && it.recipe.name) { - meals[it.date] = { name: it.recipe.name, slug: it.recipe.slug || '' }; - } - } - var now = new Date(); - var dow = now.getDay(); - var monday = new Date(now); - monday.setDate(now.getDate() - (dow === 0 ? 6 : dow - 1)); - var html = '
'; - for (var i = 0; i < 7; i++) { - var d = new Date(monday); - d.setDate(monday.getDate() + i); - var dateStr = d.toISOString().slice(0,10); - var dayName = dayNames[d.getDay()]; - var meal = meals[dateStr]; - var isToday = dateStr === today; - var bg = isToday ? 'var(--primary-color)' : 'transparent'; - var tc = isToday ? 'white' : 'var(--primary-text-color)'; - var dc = isToday ? 'rgba(255,255,255,0.7)' : 'var(--secondary-text-color)'; - var fw = isToday ? 'bold' : 'normal'; - var br = isToday ? '8px' : '0'; - var bb = isToday ? 'none' : '1px solid var(--divider-color)'; - var mn = meal ? meal.name : '-'; - var sl = meal ? meal.slug : ''; - var lnk = sl ? 'http://anneclaus.dk:9925/g/home/r/' + sl : ''; - var cur = sl ? 'pointer' : 'default'; - var oc = sl ? ' onclick="window.open(\x27' + lnk + '\x27,\x27_blank\x27)"' : ''; - html += '
'; - html += '
' + dayName + '
'; - html += '
' + mn + '
'; - html += '
'; - } - html += '
'; - return html; - ]]] - extra_styles: | - #week { - width: 100%; - } + # 📅 Madplan: i dag + 6 dage + - type: markdown + content: |- + {%- set ns = namespace(rows="") -%} + {%- set items = state_attr('sensor.mealie_madplan_ugen', 'items') or [] -%} + {%- set days = ['Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag','Søndag'] -%} + {%- for offset in range(7) -%} + {%- set day = now().date() + timedelta(days=offset) -%} + {%- set ms = items | selectattr('date', 'eq', day.isoformat()) | list -%} + {%- set m = ms[0] if ms else none -%} + {%- set recipe = m.recipe if m else none -%} + {%- set name = recipe.name if recipe else '' -%} + {%- set slug = recipe.slug if recipe else '' -%} + {%- set label = 'I dag' if offset == 0 else days[day.weekday()] -%} + {%- if slug -%} + {%- set ns.rows = ns.rows + "| **" + label + "** | [" + name + "](http://anneclaus.dk:9925/g/home/r/" + slug + ") |\n" -%} + {%- elif name -%} + {%- set ns.rows = ns.rows + "| **" + label + "** | " + name + " |\n" -%} + {%- else -%} + {%- set ns.rows = ns.rows + "| **" + label + "** | - |\n" -%} + {%- endif -%} + {%- endfor -%} + ## Næste 7 dage + + | Dag | Ret | + | --- | --- | + {{ ns.rows }} # 🛒 Bilka ToGo - opdater og vis kryds-af liste - type: vertical-stack