Hallinto ja organisaatio
Pirkanmaan hyvinvointialueen ylintä päätöksentekovaltaa käyttää aluevaltuusto. Aluehallitus vastaa aluevaltuuston päätösten toimeenpanosta. Aluevaltuusto on valinnut hyvinvointialuejohtajan. Hyvinvointialueen johtajana toimii Marina Erhola.
Pirkanmaan hyvinvointialueen organisaatio muodostuu neljästä kokonaisuudesta: Sote-palvelut, Pelastuspalvelut, Tukipalvelut ja Strateginen ohjaus.
Virhe tapahtui prosessoidessa esitysmallia.
The following has evaluated to null or missing: ==> DLAppLocalServiceHelper [in template "43104#43145#2794207" at line 190, column 44] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: file = DLAppLocalServiceHelper.getFil... [in template "43104#43145#2794207" at line 190, column 37] ----
1<#-- TRANSLATIONS -->
2<#assign i18n = {
3 "fi": {
4 "kb":"kt",
5 "mb": "mt",
6 "attachments": "Liitteet",
7 "show_more": "Näytä lisää sisältöjä",
8 "open_all": "Avaa kaikki sisällöt"
9 },
10 "en": {
11 "kb":"kb",
12 "mb":"mb",
13 "attachments": "Attachments",
14 "show_more" : "Show more content",
15 "open_all": "Open all accordions"
16 }
17} />
18
19<#function Translate word>
20 <#return i18n[locale.language][word] />
21</#function>
22
23
24<#-- MACROs -->
25<#function si num>
26 <#assign order = num?round?c?length />
27 <#assign thousands = ((order - 1) / 3)?floor />
28 <#if (thousands < 0)><#assign thousands = 0 /></#if>
29 <#assign siMap = [ {"factor": 1, "unit": ""}, {"factor": 1000, "unit": "${Translate('kb')}"}, {"factor": 1000000, "unit": "${Translate('mb')}"}, {"factor": 1000000000, "unit":"G"}, {"factor": 1000000000000, "unit": "T"} ]/>
30 <#assign siStr = (num / (siMap[thousands].factor))?string("0.#") + siMap[thousands].unit />
31 <#return siStr />
32</#function>
33
34<#-- VARIABLES -->
35<#assign
36 pirhaLiftStyle = "blue"
37 pirhaLinkIconColor = "orange"
38 pirhaHeadlineSize = "2"
39 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
40 pirhaLiftTitleIcon = "none"
41 pirhaLinkStyle = "dark"
42 pirhaLinkShowIcon = ""
43 pirhaLinkIconType="arrow-right"
44 pirhaLiftTitleIcon = ""
45 pirhaIconColor = "var(--pirha-icon-color-red)"
46 pirhaLinkUrl = ""
47 pirhaLinkType = "url"
48 pirhaUseImage = false
49 pirhaImagePosition = "left"
50 pirhaButtonCss = "pirha-button-link"
51 pirhaAttachmentTitle = ""
52 pirhaAttachmentDescription = ""
53 attachments = []
54/>
55
56<#-- SET LIFT BACKGROUND STYLE -->
57<#if liftStyle?? && liftStyle.getData()?has_content>
58 <#assign pirhaLiftStyle = liftStyle.getData() />
59</#if>
60
61<#-- SET LINK BUTTON STYLE -->
62<#if pirhaLiftStyle != "transparent">
63 <#assign pirhaButtonCss += " button-inverted" />
64</#if>
65
66<#-- SET TITLE SIZE -->
67<#if liftTitleSize?? && liftTitleSize.data?has_content>
68 <#if liftTitleSize.data?starts_with("h")>
69 <#assign
70 pirhaHeadlineSize = liftTitleSize.data?substring(1)
71 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
72 />
73 <#else>
74 <#assign
75 pirhaHeadlineSize = liftTitleSize.data
76 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
77 />
78 </#if>
79</#if>
80
81
82<#if liftTitleIcon?? && liftTitleIcon.data?has_content && (liftTitleIcon.getData() != "none" ||liftTitleIcon.getData() != "")>
83 <#assign pirhaLiftTitleIcon = liftTitleIcon.getData()?lower_case />
84</#if>
85
86<#if linkStyle?? && linkStyle.data?has_content>
87 <#assign pirhaLinkStyle = linkStyle.getData() />
88
89</#if>
90
91<#if liftImage?? && liftImage.getData()?has_content>
92 <#assign pirhaUseImage = true />
93</#if>
94
95<#if liftImagePosition?? && liftImagePosition.data?has_content>
96 <#assign pirhaImagePosition = liftImagePosition.data />
97</#if>
98
99
100
101<#-- LOGIC -->
102<div class="pirha-lift pirha-lift--${pirhaLiftStyle} <#if pirhaUseImage>pirha-lift--with-image pirha-lift__image--${pirhaImagePosition}</#if>">
103 <#-- IMAGE -->
104 <#if pirhaUseImage>
105 <figure>
106 <img src="${liftImage.getData()}" alt="${liftImage.getAttribute('alt')}" />
107 </figure>
108 </#if>
109 <#if sections?? && sections.getSiblings()?has_content>
110
111 <div class="pirha-lift__body">
112 <#-- HEADLINE -->
113 <#if liftTitle?? && liftTitle.data?has_content>
114 <h${pirhaHeadlineSize} class="pirha-lift__heading">
115 <#-- SHOW ICON -->
116 <#if pirhaLiftTitleIcon != 'none' && pirhaLiftTitleIcon != ''>
117 <span role="presentation" class="pirha-icon pirha-icon--${pirhaLiftTitleIcon}"></span>
118 </#if>
119 <#-- HEADLINE CONTENT -->
120 ${liftTitle.data}
121 </h${pirhaHeadlineSize}>
122 </#if>
123 <#list sections.getSiblings() as section>
124 <div class="pirha-lift__article">
125 <#-- SET SECTION HEADLINE SIZE -->
126 <#assign pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1 />
127 <#if section.liftSectionTitleSize?? && section.liftSectionTitleSize.getData()?has_content>
128 <#assign pirhaSectionHeadlineSize = section.liftSectionTitleSize.getData() />
129 </#if>
130 <#-- CONTENT -->
131 <#if section.liftSectionTitle?? && section.liftSectionTitle.data?has_content>
132 <#-- <h${pirhaSectionHeadlineSize} class="pirha-lift__heading--article"> -->
133 <h${pirhaSectionHeadlineSize} class="pirha-lift__heading">
134 <#if section.liftSectionTitleIcon?? && section.liftSectionTitleIcon.getData()?has_content>
135 <span role="presentation" class="pirha-icon pirha-icon--${section.liftSectionTitleIcon.getData()}"></span>
136 </#if>
137 ${section.liftSectionTitle.data}
138 </h${pirhaSectionHeadlineSize}>
139 </#if>
140 <#if section.liftContent?? && section.liftContent.data?has_content>
141 <div class="pirha-lift__content">
142 ${section.liftContent.data}
143 </div>
144 </#if>
145 <#-- LINKS -->
146 <#if section.links?? && section.links.getSiblings()?has_content>
147 <#assign linkWrapperCSS = "" />
148
149 <#list section.links.getSiblings() as link>
150 <#if link.linkText.data?has_content>
151 <#assign linkWrapperCSS = "pirha-lift__links" />
152 <#break>
153 </#if>
154 </#list>
155 <div class="${linkWrapperCSS}">
156 <#list section.links.getSiblings() as link>
157
158 <#-- Internal link -->
159 <#if link.linkUrl?? && link.linkUrl.getFriendlyUrl()?has_content>
160 <#assign
161 pirhaLinkUrl = link.linkUrl.getFriendlyUrl()
162 pirhaLinkIconType = "arrow-right"
163 />
164 </#if>
165
166 <#-- External link -->
167 <#if link.linkUrlExternal?? && link.linkUrlExternal.getData()?has_content>
168 <#assign
169 pirhaLinkUrl = link.linkUrlExternal.getData()
170 pirhaLinkIconType = "link-external"
171 />
172 </#if>
173
174 <#-- Attchment -->
175
176 <#if link.linkFile?? && link.linkFile.getData()?has_content>
177 <#assign
178 pirhaLinkUrl = link.linkFile.getData()
179 pirhaLinkIconType = "attachment"
180 />
181 <#-- Attachment description -->
182 <#if link.linkFileDescription?? && link.linkFileDescription.getData()?has_content>
183 <#assign pirhaAttachmentDescription = link.linkFileDescription.getData() />
184 </#if>
185 <#-- Get attachment details -->
186 <#assign
187 link_url_parts = link.linkFile.getData()?split("/")
188 file_uuid = link_url_parts[5]?keep_before("?")
189 file = DLAppLocalServiceHelper.getFileEntryByUuidAndGroupId(file_uuid?string,groupId?long)
190 />
191
192
193 <#-- SET TITLE -->
194 <#if link.linkText.getData()?has_content>
195 <#assign pirhaAttachmentTitle = link.linkText.getData() />
196 <#else>
197 <#assign pirhaAttachmentTitle = file.getTitle()?keep_before_last(".") />
198 </#if>
199
200 <#-- ADD FILE TO ATTACHEMNTS ARRAY -->
201 <#assign attachments = attachments + [ {
202 "fileName": pirhaAttachmentTitle,
203 "fileURL": pirhaLinkUrl,
204 "fileExt": file.getExtension(),
205 "fileSize": file.getSize(),
206 "fileDescription": pirhaAttachmentDescription
207 }] />
208
209 </#if>
210
211 <#-- SHOW ICON -->
212 <#if pirhaLinkUrl?has_content && link.linkText.getData()?has_content>
213 <#if pirhaLinkIconType != "attachment">
214 <a class="${pirhaButtonCss}" href="${pirhaLinkUrl}">
215 <#if link.linkIconColor?? && link.linkIconColor.data?has_content>
216 <#assign pirhaLinkIconColor = "var(--pirha-icon-color-${link.linkIconColor.data})" />
217 </#if>
218 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
219 <span>${link.linkText.data}</span>
220 </a>
221 <#else>
222 <div class="pirha-lift__attachment">
223 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
224 <div>
225 <a href="${pirhaLinkUrl}" class="">
226 ${pirhaAttachmentTitle} (<span>${file.getExtension()}, ${si(file.getSize())}</span>)
227 </a>
228 <#if pirhaAttachmentDescription?has_content>
229 <p class="pirha-link__description">
230 ${pirhaAttachmentDescription}
231 </p>
232 </#if>
233 </div>
234 </div>
235 </#if>
236 </#if>
237 </#list>
238 </div>
239 </#if>
240 </div>
241 </#list>
242 </#if>
243</div>