ESG

Hedeselskabet hat immer Wert auf seine gesellschaftliche Verantwortung gelegt, und mit unserer 2025-Strategie bilden unsere Werte und Verantwortlichkeiten ein Fundament sowohl für den Verein als auch für Dalgas. Unser Ansatz zur gesellschaftlichen Verantwortung basiert auf dem Ziel, unsere Kernkompetenzen zu nutzen, um eine nachhaltige Zukunft zu gestalten – mit der Natur als Partner.

Unsere gesellschaftliche Verantwortung

Die Arbeit von Hedeselskabet im Bereich der gesellschaftlichen Verantwortung folgt den zehn Prinzipien für verantwortungsvolle Unternehmensführung des UN Global Compact und damit auch den UN-Zielen für nachhaltige Entwicklung.

Gleichzeitig arbeiten wir an verantwortungsvoller Unternehmensführung in Form von Umweltaspekten (E), sozialen Aspekten (S) und Governance (G), wobei wir im Bereich ESG dokumentieren und berichten.

Haben Sie Fragen zu unseren ESG-Initiativen?

ESG-Initiativen bei Dalgas

Wir konzentrieren uns strategisch darauf, den Klimawandel zu reduzieren, die Biodiversität zu erhöhen und die knappen Ressourcen der Erde wiederzuverwenden. Wir bieten verantwortungsvolle Lösungen an und arbeiten daran, unseren eigenen CO2-Fußabdruck zu reduzieren, der in unserem Klimarechnung dokumentiert wird. Wir nehmen an der Pilotstudie des Greenhouse Gas Protocol für den Landsektor und die Entfernung von Treibhausgasen teil und haben unsere Klimarechnung gemäß diesen Richtlinien aufgestellt und folgen den Empfehlungen der Science Based Targets Initiative (SBTi) zur Reduzierung unserer eigenen Emissionen.

Im Jahr 2023 haben wir naturbasierte Lösungen eingeführt, um die Herausforderungen des Klimas und der Biodiversität anzugehen. Gleichzeitig arbeiten wir an der Biodiversität auf dem Kongenshus Hede und haben Partnerschaften für Auenwälder zum Schutz des Grundwassers. Unsere Projekte umfassen Aufforstung und Renaturierung, die zur CO2-Bindung, Biodiversität und sauberem Trinkwasser beitragen.

Hedeselskabet hat auch die FSC-Ökosystemdienstleistungszertifizierung für Biodiversitätsmaßnahmen durchgeführt und arbeitet daran, das Verständnis für Natur und Biodiversität durch Bildung und Zusammenarbeit zu erhöhen.

Hedeselskabet handelt sozial und gesellschaftlich verantwortlich, sowohl intern als auch extern.

Extern arbeiten wir daran, Arbeitsmöglichkeiten für Personen mit mentalen, sozialen oder physischen Herausforderungen zu schaffen und kooperieren mit nationalen Arbeitsvermittlungen. Im Jahr 2023 hatten wir 24 Personen in flexiblen Arbeitsverhältnissen oder ähnlichen Programmen beschäftigt.

Intern möchten wir ein verantwortungsbewusster und inklusiver Arbeitsplatz sein, der sich auf das Wohlbefinden der Mitarbeiter, das Arbeitsumfeld und die Kompetenzentwicklung konzentriert. Darüber hinaus hat unser Ausbildungs- und Mentorenkonzept die Rekrutierung und Bindung qualifizierter Arbeitskräfte sichergestellt.

Hedeselskabet bietet Homeoffice und flexible Arbeitszeiten an, um eine Balance zwischen Arbeit und Freizeit zu schaffen. Gleichzeitig liegt der Fokus auch auf dem Arbeitsumfeld mit Erste-Hilfe-Kursen und Sicherheitsinitiativen. Wir legen großen Wert darauf, einen sicheren Arbeitsplatz für unsere vielen Kollegen zu schaffen, die mit Maschinen in der Natur arbeiten.

Die Governance von Hedeselskabet für 2023 konzentriert sich darauf, einen effektiven, transparenten und verantwortungsvollen Betrieb im Einklang mit den Prinzipien guter Unternehmensführung sicherzustellen. Die Governance-Aktivitäten umfassen Strukturen, Prozesse und Führungsprinzipien, die die Beziehungen zwischen Management, Vorstand, Mitarbeitern, Lieferanten und anderen Interessengruppen stärken.

Wir haben die Richtlinien für Unterlieferanten erweitert, die Dokumentation für die EcoVadis-Nachhaltigkeitsbewertung aktualisiert und Schritte unternommen, um die EU-CSR-Richtlinie zu erfüllen.

Die Führungsprinzipien wurden im Führungskräfteforum von Hedeselskabet diskutiert, und es wurden weitere Mitarbeitervertreter für den Zusammenarbeitsausschuss gewählt, um eine bessere Vertretung zu gewährleisten. Gleichzeitig haben wir daran gearbeitet, die Sichtbarkeit in der Öffentlichkeit durch die Teilnahme an Debatten und die Erweiterung der Empfängerschaft des Magazins Vækst zu erhöhen.

ENVIRONMENT

Umweltdaten Einheit Ziel 2023 2022 2021
Scope 1 Tonnen CO2e 42% Reduzierung 4.817 4.794 4.057
Scope 1 - Veränderte Kohlenstoffbilanz im Wald - eigene Wälder Tonnen CO2e -18.033 -24.905 -17.633
Scope 2 Tonnen CO2e 42% Reduzierung 183 192 176
Scope 3 Tonnen CO2e 25% Reduzierung 106.692 121.793 111.026
Scope 3 - Veränderter Kohlenstoffspeicher im Wald – dauerhaft verwaltet Tonnen CO2e -228.162 -268.702 -242.303
Außerhalb des Umfangs Tonnen CO2e 515.114 502.073 580.664
Substitutionseffekte und vermiedene Emissionen Tonnen CO2e -789.594 -808.107 -826.869

SOCIAL

Soziale Daten Einheit Ziel 2023 2022 2021
Anzahl Mitarbeiter (Headcounts) Personen 823 903 803
Geschlechterdiversität (Verhältnis: Frauen:Männer) % 23:77 23:77 23:77
Krankheitsausfall Stunden 75.187 69.308 49.520
Unfallsausfall Stunden 4.964 3.855 -
Schüler, Lehrlinge, Praktikanten Personen 85 59 53
Angestellt auf $56, flexibler Arbeitsplatz, Lohnzuschuss oder Mentorenbedingungen Personen 24 23 19
Durchschnittsalter Jahr 45 49 45
Durchschnittliches Dienstalter Jahr 9 8 9

GOVERNANCE

Verwaltungsdaten Einheit Ziel 2023 2022 2021
Geschlechterdiversität des Vorstands (Verhältnis: Frauen:Männer) % 33:67 33:67 33:67 33:67
Geschlechterdiversität in weiteren Führungsebenen – Geschäftsführung und Personen mit Personalverantwortung, die an die Geschäftsführung berichten (Verhältnis: Frauen:Männer) % 33:67 31:69 33:67 24:76
Präsenz bei Vorstandssitzungen % 100 96 100
Gehaltsunterschied zwischen CEO und Mitarbeitern (Medianlohn) mal 19,80 16,38 14,15

Tauchen Sie in unsere Jahresberichte ein

Möchten Sie mehr darüber erfahren, wer wir als Organisation sind? Und was wir tatsächlich tun, um einen Unterschied zu machen?

Füllen Sie Ihre Tasse mit Kaffee und tauchen Sie in unsere Jahresberichte ein – dann werden Sie viel klüger darüber, wer Dalgas ist.

Error executing template "/Designs/Swift/Grid/Page/RowTemplates/Dalgas_Contact.cshtml"
System.Exception: Custom field 'AccessUser_JobTitleTranslatedDE' was not found.
   at Dalgas.Custom.Extensions.UserViewModelExtensions.GetCustomFieldValue[T](UserViewModel user, String fieldSystemName) in D:\a\1\s\Custom\Extensions\UserViewModelExtensions.cs:line 34
   at Dalgas.Custom.Extensions.UserViewModelExtensions.GetJobTitleTranslatedDE(UserViewModel user) in D:\a\1\s\Custom\Extensions\UserViewModelExtensions.cs:line 236
   at Dalgas.Custom.Extensions.UserViewModelExtensions.GetJobTitle(UserViewModel user) in D:\a\1\s\Custom\Extensions\UserViewModelExtensions.cs:line 255
   at CompiledRazorTemplates.Dynamic.RazorEngine_2befce59cd7c4d60889e99ed78fc01de.Execute() in E:\Solutions\dalgas\Files\Templates\Designs\Swift\Grid\Page\RowTemplates\Dalgas_Contact.cshtml:line 451
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.GridRowViewModel> 2 @using System 3 @using System.Collections.Generic 4 @using System.Linq 5 @using System.Text.RegularExpressions 6 @using Dalgas.Custom.Extensions 7 @using Dalgas.Custom.Models.Content 8 @using Dalgas.Custom.Services 9 @using Dalgas.Custom.ViewModels.UI 10 @using Dynamicweb.Core.Encoders 11 @using Dynamicweb.Core.Json 12 @using Dynamicweb.Ecommerce.ProductCatalog 13 @using Dynamicweb.Frontend 14 @using Dynamicweb.Security.UserManagement 15 16 @using System 17 @using System.Collections.Generic 18 @using System.Linq 19 @using Dalgas.Custom.ViewModels.UI 20 @using Dynamicweb.Content 21 @using Dynamicweb.Ecommerce.ProductCatalog 22 @using Dynamicweb.Frontend 23 @using ParagraphService = Dalgas.Custom.Services.ParagraphService 24 25 @*TODO: Move these functions onto the model *@ 26 27 @functions 28 { 29 30 public string GetSectionClassList(GridRowViewModel model, string overwriteTheme = "") 31 { 32 var returnValues = new List<string> 33 { 34 $"item_{model.Item.SystemName.ToLower()}" 35 }; 36 37 if (Services.Grids.GetGridRowById(model.Id).Sort == 1) 38 { 39 returnValues.Add("dalgas-section-first-on-page"); 40 } 41 42 var sectionBackgroundTheme = model.Item.GetItem("ColorScheme")?.GetString("ColorScheme") ?? string.Empty; 43 44 if (!string.IsNullOrEmpty(overwriteTheme)) 45 { 46 sectionBackgroundTheme = overwriteTheme; 47 } 48 49 // Add theme class if it exists 50 if (!string.IsNullOrWhiteSpace(sectionBackgroundTheme)) 51 { 52 if (sectionBackgroundTheme.Contains("default")) 53 { 54 returnValues.Add("theme theme-light"); 55 } 56 else 57 { 58 returnValues.Add($"theme {sectionBackgroundTheme.Replace(" ", "").Trim().ToLower()}"); 59 } 60 } 61 62 // Determine if top padding should be removed 63 64 string removeTopPadding = model.Item.GetItem("ColorScheme")?.GetString("RemoveTopPadding"); 65 66 returnValues.Add("pb-6"); 67 if (removeTopPadding != "enable") 68 { 69 returnValues.Add("pt-6"); 70 } 71 72 return string.Join(" ", returnValues); 73 } 74 75 } 76 77 78 @{ 79 IEnumerable<HeadingViewModel> headings = ParagraphService.Instance.GetHeadingsByItems(Model.Item?.GetItem("Paragraph_Text")?.GetItems("Headings")); 80 string text = Model.Item.GetItem("Paragraph_Text")?.GetString("Text"); 81 string lead = Model.Item.GetItem("Paragraph_Text")?.GetString("Lead"); 82 IEnumerable<ButtonViewModel> buttons = ParagraphService.Instance.GetButtonsByItems(Model.Item?.GetItem("Paragraph_Text")?.GetItems("Buttons")); 83 84 bool hasImage = Model.Item.GetItem("Paragraph_Image")?.GetFile("Image") != null; 85 bool hasText = !string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Text")?.GetString("Text")); 86 bool hasLead = !string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Text")?.GetString("Lead")); 87 bool hasHeading = headings.Any(); 88 bool hasButton = buttons.Any(); 89 90 var theme = Model.Item.GetItem("ColorScheme")?.GetString("ColorScheme"); 91 var fifthElementTheme = "fifth-element-color-" + Model.Item?.GetItem("ColorScheme")?.GetString("FifthElementColor"); 92 93 var sectionClassList = GetSectionClassList(Model); 94 95 var image = string.Empty; 96 var imageParameters = new Dictionary<string, object>(); 97 98 string layout = string.Empty; 99 Boolean enableFifthElement = false; 100 if (Model?.Item != null) 101 { 102 var paragraphLayout = Model.Item.GetItem("Paragraph_Layout"); 103 104 if (paragraphLayout != null) 105 { 106 layout = paragraphLayout.GetString("Layout"); 107 108 enableFifthElement = !string.IsNullOrEmpty(paragraphLayout.GetString("Layout_FifthElement")); 109 } 110 } 111 112 if (!string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Image")?.GetFile("Image")?.Path)) 113 { 114 image = Model.Item.GetItem("Paragraph_Image").GetFile("Image").Path; 115 imageParameters.Add("alt", Model.Item.GetItem("Paragraph_Image")?.GetString("ImageAltText")); 116 int xPos = Model.Item.GetItem("Paragraph_Image").GetFile("Image")?.FocalPositionFromLeft ?? 50; 117 int yPos = Model.Item.GetItem("Paragraph_Image").GetFile("Image")?.FocalPositionFromTop ?? 50; 118 string cssPosition = $"{xPos}% {yPos}%"; 119 imageParameters.Add("style", "object-position:" + cssPosition); 120 } 121 122 LinkViewModel imageLink = new LinkViewModel(); 123 if (Model.Item?.GetItem("Paragraph_Image")?.GetItem("Link") != null && !string.IsNullOrEmpty(Model?.Item?.GetItem("Paragraph_Image")?.GetItem("Link").GetString("ButtonLink"))) 124 { 125 imageLink = ParagraphService.Instance.GetLinkByItem(Model?.Item?.GetItem("Paragraph_Image")?.GetItem("Link")); 126 } 127 128 string fifthElementIconPath = "/Files/Templates/Designs/Swift/Assets/Images/DalgasFifthElements/"; 129 } 130 131 132 @{ 133 QueryResult queryResult = new QueryResult(); 134 int numberOfPersons = Convert.ToInt32(Model.Item.GetItem("Paragraph_Layout").GetString("NumberOfPersons")); 135 bool showForm = Model.Item.GetItem("Paragraph_Layout").GetBoolean("ShowForm"); 136 bool showFacets = Model.Item.GetItem("Paragraph_Layout").GetBoolean("ShowFacets"); 137 bool showSearch = Model.Item.GetItem("Paragraph_Layout").GetBoolean("ShowSearch"); 138 139 string cardInformationLayout = Model.Item.GetItem("Paragraph_Layout").GetString("Layout"); 140 141 bool allowAllQueryItems = showFacets || showSearch; 142 int formParagraphId = Pageview.AreaSettings.GetLink("FormGetContacted").PageId; 143 string iconPath = "/Files/Templates/Designs/Swift/Assets/icons/"; 144 145 string formType = Model.Item.GetItem("Paragraph_Layout").GetString("FormType"); //Default or Microsoft 146 string formBlockId = Model.Item.GetItem("Paragraph_Layout").GetString("FormId"); // Microsoft form 147 string formContainerId = Model.Item.GetItem("Paragraph_Layout").GetString("ContainerId"); // Microsoft form 148 149 ButtonViewModel btnOpenForm = new ButtonViewModel 150 { 151 Id = "formParagraphId_" + formParagraphId, 152 Text = Translate("Contact me"), 153 Type = ButtonType.Button, 154 DisplayType = ButtonDisplayType.Primary, 155 Classes = new ClassList("js-show-paragraph-form") 156 }; 157 158 IList<UserViewModel> contactPersonListItems = Model.Item?.GetItem("Paragraph_Layout")?.GetUsers("ContactPersonSelector") ?? Enumerable.Empty<UserViewModel>().ToList(); 159 bool hasContactPersonListItems = contactPersonListItems.Any(); 160 List<User> users = new List<User>(); 161 List<string> userIds = new List<string>(); 162 163 if (hasContactPersonListItems) 164 { 165 userIds.AddRange(contactPersonListItems.Select(cp => cp.ID.ToString())); 166 allowAllQueryItems = false; 167 showFacets = false; 168 showSearch = false; 169 } 170 else 171 { 172 if (showFacets) 173 { 174 numberOfPersons = 12; 175 queryResult = ContentRelationService.Instance.GetAllContacts(numberOfPersons); 176 } 177 else 178 { 179 queryResult = ContentRelationService.Instance.GetRelatedContactsByCurrentPage(numberOfPersons); 180 } 181 182 userIds.AddRange(queryResult.Results.Select(qrr => qrr["UserID"]?.ToString())); 183 } 184 185 bool showPersons = Model.Item.GetItem("Paragraph_Layout").GetBoolean("showPersons") && userIds.Any(); 186 int pageNum = int.TryParse(Dynamicweb.Context.Current.Request["PageNum"], out int pageNumResult) ? pageNumResult : 1; 187 string searchTerm = Dynamicweb.Context.Current.Request["q"]; 188 List<FacetOption> selectedFacetOptions = new List<FacetOption>(); 189 int totaleCount = 0; 190 bool enableShowZeroResultMsg = true; 191 192 bool showAlternativeLayout = false; 193 194 if (showFacets && showSearch || showPersons && numberOfPersons >= 2 && userIds.Count >= 2 && showForm || showPersons && numberOfPersons >= 3 && userIds.Count >= 3 && !showForm) 195 { 196 showAlternativeLayout = true; 197 } 198 } 199 200 201 @if (queryResult.FacetGroups.Any() || hasContactPersonListItems || showForm) 202 { 203 <section id="section-@Model.Id" class="@sectionClassList item_@Model.Item.SystemName.ToLower()" data-swift-gridrow> 204 <div class=""> 205 206 <div class="container-xl"> 207 <div class="row justify-content-center"> 208 <div class="col-12"> 209 <div class="row"> 210 211 <div class="col-12 @(showAlternativeLayout ? "flex-column flex-lg-row mb-5" : "col-lg-4 flex-column") d-flex justify-content-between"> 212 <div class="js-content-container content-container col-12 @(showAlternativeLayout ? "col-lg-5" : string.Empty)"> 213 214 <span> 215 @string.Join("", headings.Select(h => h.ToString())) 216 </span> 217 218 @if (!string.IsNullOrEmpty(lead)) 219 { 220 <p class="lead">@lead</p> 221 } 222 223 @text 224 225 </div> 226 <div class="js-content-container content-container @(showAlternativeLayout ? "col-lg-5 d-inline-flex justify-content-lg-end align-items-end" : string.Empty)"> 227 <div class="d-flex flex-wrap gap-3 @(showAlternativeLayout ? "mb-4" : "mb-4 mb-lg-0")"> 228 @foreach (ButtonViewModel button in buttons) 229 { 230 @button 231 } 232 </div> 233 </div> 234 </div> 235 236 <div class="col"> 237 <div class="position-relative g-4 js-card-person-container js-dalgas-queryresult-container" id="@($"query-result-{Model.Id}")"> 238 239 @if (allowAllQueryItems) 240 { 241 totaleCount = queryResult.TotalCount; 242 } 243 244 <form method="post" action="@Pageview.SearchFriendlyUrl" data-response-target-element="content" tabindex="-1" aria-hidden="false" class="d-flex js-dalgas-facets-form dalgas-facets-form" data-total-count="@totaleCount" data-page-size="@numberOfPersons"> 245 <input type="hidden" name="LayoutTemplate" value="Designs/Swift/Swift_PageClean.cshtml"/> 246 <input type="hidden" name="PageNum" value="@pageNum"/> 247 @if (showFacets) 248 { 249 foreach (FacetGroup facetGroup in queryResult.FacetGroups) 250 { 251 foreach (Facet facet in facetGroup.Facets) 252 { 253 string showClass = " show"; 254 string ariaExpanded = "true"; 255 string facetGroupId = Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", string.Empty); 256 257 258 if (facet.Options.Any()) 259 { 260 int selectedFacetsInGroup = 0; 261 262 foreach (FacetOption option in facet.Options) 263 { 264 if (option.Selected) 265 { 266 selectedFacetsInGroup++; 267 } 268 } 269 270 string label = selectedFacetsInGroup > 0 ? Translate(facet.Name) + "<span style=\"padding: 0.3em 0.6em\" class=\"badge ms-2\">" + selectedFacetsInGroup + "</span>" : Translate(facet.Name); 271 272 <div class="dropdown js-facets-selector"> 273 <button class="btn dropdown-toggle" type="button" id="FacetGroup_@facetGroupId" data-bs-toggle="dropdown" aria-expanded="false"> 274 @label 275 </button> 276 <div data-lenis-prevent class="dropdown-menu p-3" aria-labelledby="FacetGroup_@facetGroupId" style="min-width: 280px"> 277 @foreach (FacetOption facetOption in facet.Options.OrderBy(fo => fo.Label)) 278 { 279 string facetLabel = HtmlEncoder.HtmlEncode(facetOption.Label); 280 string disabled = facetOption.Count <= 0 ? "disabled" : string.Empty; 281 string selected = facetOption.Selected ? "checked" : string.Empty; 282 string facetValue = Uri.UnescapeDataString(facetOption.Value); 283 string optionValue = $"[{facetValue}]"; 284 285 facetLabel = facetLabel.ToLower() == "true" ? facetLabel = Translate("Yes") : facetLabel; 286 facetLabel = facetLabel.ToLower() == "false" ? facetLabel = Translate("No") : facetLabel; 287 288 <label class="form-check mt-1" @disabled> 289 <input type="checkbox" onclick="custom.QueryResult.update(event)" class="form-check-input" name="@facet.QueryParameter" value="@optionValue" data-filter-value="@facetLabel" @selected> 290 <span class="form-check-label d-flex align-items-center"> 291 <span class="flex-fill">@facetLabel </span> 292 <small class="opacity-85">@facetOption.Count</small> 293 </span> 294 </label> 295 296 if (facetOption.Selected) 297 { 298 FacetOption selectFacetOption = facetOption; 299 selectFacetOption.Name = facet.QueryParameter; 300 selectedFacetOptions.Add(selectFacetOption); 301 } 302 } 303 </div> 304 </div> 305 } 306 } 307 } 308 309 if (!string.IsNullOrEmpty(searchTerm)) 310 { 311 selectedFacetOptions.Add(new FacetOption() 312 { 313 Count = 1, 314 Label = searchTerm, 315 Name = "q", 316 Selected = true, 317 Value = searchTerm 318 }); 319 } 320 } 321 322 @if (showSearch) 323 { 324 <div class="type-ahead-dropdown"> 325 <div class="position-relative suggest-form"> 326 <span class="position-absolute top-0 end-0 icon-3 px-3 d-flex align-items-center h-100 search-icon"> 327 @ReadFile(iconPath + "search.svg") 328 </span> 329 330 <input id="searchField_@Model.Id" 331 class="form-control custom-header-searchbar js-custom-facets-search-field pe-5 ps-3 js-" 332 type="search" 333 placeholder="@Translate("Enter postcode or name of person")" 334 autocomplete="off" 335 maxlength="255" 336 name="q" 337 minlength="3" 338 value="@searchTerm" 339 data-original="@searchTerm"> 340 341 <button type="button" 342 onclick="custom.QueryResult.clearSearchField(event)" 343 class="btn h-100 icon-2 reset-search" 344 aria-label="@Translate("Clear search")" 345 style="opacity: 0; position: absolute; top: 0; right: 0; visibility: hidden;"> 346 @ReadFile(iconPath + "x.svg") 347 </button> 348 </div> 349 </div> 350 <input type="submit" onclick="custom.QueryResult.update(event)" class="btn btn-primary col-md-2" value="@Translate("Search", "Search")"> 351 } 352 </form> 353 354 @if (showFacets && selectedFacetOptions.Any()) 355 { 356 <div class="mt-3 d-flex gap-3 mb-4 js-dalgas-queryresult-selectedfacets-container dalgas-queryresult-selectedfacets-container"> 357 @foreach (FacetOption facetOption in selectedFacetOptions) 358 { 359 string facetValue = Uri.UnescapeDataString(facetOption.Value); 360 string optionValue = $"[{facetValue}]"; 361 <input class="visually-hidden" id="Selected_@(Model.Id)_@facetOption.Value.Replace("#", string.Empty)" name="@facetOption.Name" onclick="custom.QueryResult.deselectFacetOption(event)" type="checkbox" value="@optionValue" title="@facetOption.Label" checked> 362 <label class="badge theme border border-dark" for="Selected_@(Model.Id)_@facetOption.Value.Replace("#", string.Empty)"> 363 <span class="text-nowrap">@(facetOption.Label)</span> 364 <span class="icon-2 ms-2"> 365 @ReadFile(iconPath + "x.svg") 366 </span> 367 </label> 368 } 369 370 @if (selectedFacetOptions.Count >= 3) 371 { 372 <input class="visually-hidden" id="ClearAll" name="ClearAll" onclick="custom.QueryResult.clearAll(event)" type="checkbox" value="" title="" checked> 373 <label class="badge text-nowrap dalgas-btn-clear-all" for="ClearAll"> 374 <span class="text-nowrap">@Translate("Clear all")</span> 375 <span class="icon-2 ms-2"> 376 @ReadFile(iconPath + "x.svg") 377 </span> 378 </label> 379 } 380 </div> 381 } 382 383 @if (showFacets && selectedFacetOptions.Any() == false && string.IsNullOrEmpty(searchTerm)) 384 { 385 enableShowZeroResultMsg = false; 386 userIds = new List<string>(); 387 } 388 389 @if (showFacets && enableShowZeroResultMsg && userIds.Any() == false) 390 { 391 <div class="mt-4">@Translate("Your search returned no results...")</div> 392 } 393 394 395 @if (showPersons && userIds.Any() || showPersons && hasContactPersonListItems) 396 { 397 <div class="row @(showAlternativeLayout ? "g-4" : "mt-3") js-dalgas-queryresult-itemlist dalgas-queryresult-itemlist"> 398 399 @foreach (string userId in userIds) 400 { 401 if (!int.TryParse(userId, out int intUserId)) 402 { 403 continue; 404 } 405 406 //UserViewModel result = new UserViewModel(); 407 408 User result = User.GetUserByID(intUserId); 409 410 if (result == null) 411 { 412 continue; 413 } 414 415 UserViewModel resultViewModel = result.ToViewModel(); 416 417 <div class="col-12 js-col-card-person col-lg @(showAlternativeLayout ? "col-lg-4" : "")"> 418 419 @{ 420 FileViewModel imageFile = ViewModelFactory.CreateFieldFileValueView(result.Image); 421 } 422 423 <div class="theme theme-light h-100"> 424 <div class="p-img-container d-flex"> 425 <figure class="ratio ratio-1x1 @(!string.IsNullOrEmpty(result.Image) ? "has-image" : string.Empty)"> 426 @RenderPartial("Components/Image.cshtml", imageFile ?? new FileViewModel()) 427 </figure> 428 <figure class="ratio ratio-1x1"> 429 <span class="fifth-element @fifthElementTheme opacity-50"> 430 @ReadFile(fifthElementIconPath + "canopy.svg") 431 </span> 432 </figure> 433 </div> 434 <div class="p-txt-container p-4 pt-5"> 435 <h4>@resultViewModel.Name</h4> 436 437 @if (cardInformationLayout == "title-and-description") 438 { 439 <div class="small d-flex flex-column mb-3 opacity-75"> 440 <span>@resultViewModel.GetJobTitle()</span> 441 442 @if (!string.IsNullOrEmpty(resultViewModel.GetDescription())) 443 { 444 <span class="mt-3">@resultViewModel.GetDescription()</span> 445 } 446 </div> 447 } 448 else 449 { 450 <div class="small d-flex flex-column mb-3 opacity-75"> 451 <span>@resultViewModel.GetJobTitle()</span> 452 <span>@resultViewModel.GetDepartment()</span> 453 454 @if (resultViewModel.GetLocations().Any()) 455 { 456 foreach (var test in resultViewModel.GetLocations()) 457 { 458 @test.Text 459 } 460 } 461 462 <span>@resultViewModel.GetComment()</span> 463 </div> 464 465 466 if (!string.IsNullOrEmpty(resultViewModel.GetContactEmail())) 467 { 468 <div class="d-flex gap-3 small opacity-75"> 469 <span>E.</span> 470 <a style="font-size: 1em" class="text-decoration-none" href="mailto:@resultViewModel.GetContactEmail()">@resultViewModel.GetContactEmail().ToLower()</a> 471 </div> 472 } 473 if (!string.IsNullOrEmpty(resultViewModel.Phone)) 474 { 475 <div class="d-flex gap-3 small opacity-75"> 476 <span>T.</span> 477 <span>@resultViewModel.Phone</span> 478 </div> 479 } 480 } 481 </div> 482 </div> 483 484 </div> 485 } 486 @if (showForm) 487 { 488 <div class="col-12 js-col-card-person col-lg"> 489 490 <div class="h-100 contact-person-card js-contact-person-card"> 491 492 <div class="card-front theme theme-light "> 493 <div class="p-img-container d-none d-lg-flex"> 494 <figure class="ratio ratio-1x1"> 495 @* Empty space *@ 496 </figure> 497 <figure class="ratio ratio-1x1"> 498 <span class="fifth-element @fifthElementTheme opacity-50"> 499 @ReadFile(fifthElementIconPath + "canopy.svg") 500 </span> 501 </figure> 502 </div> 503 <div class="p-txt-container p-4 pt-6"> 504 <h4>@Translate("Get Contacted")</h4> 505 506 <div class="small d-flex flex-column mb-3 opacity-75"> 507 @Translate("Dalgas - Get Contacted - Card Text", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.") 508 </div> 509 510 @RenderModel(btnOpenForm) 511 </div> 512 </div> 513 <div class="card-back theme theme-light "> 514 515 @if (formParagraphId != null) 516 { 517 <div class="contact-person-form-container js-contact-person-form-container theme p-4"> 518 519 520 @if (formType == "microsoft") 521 { 522 <div class="js-remove-microsoft-form-styling microsoft-form-container"> 523 <script src="https://cxppusa1formui01cdnsa01-endpoint.azureedge.net/eur/FormLoader/FormLoader.bundle.js" crossorigin="anonymous" defer></script> 524 <div data-cached-form-url="https://assets-eur.mkt.dynamics.com/@formBlockId/digitalassets/forms/@formContainerId" data-form-api-url="https://public-eur.mkt.dynamics.com/api/v1.0/orgs/@formBlockId/landingpageforms" data-form-id="@formContainerId"></div> 525 </div> 526 } 527 else 528 { 529 @RenderParagraphContent(formParagraphId) 530 } 531 532 533 </div> 534 } 535 536 </div> 537 538 </div> 539 </div> 540 } 541 </div> 542 543 if (allowAllQueryItems && totaleCount > numberOfPersons) 544 { 545 <div class="row mt-4"> 546 <div class="col-12 text-center"> 547 <button onclick="custom.QueryResult.getNextPage(event)" class="btn btn-primary">@Translate("Vis flere")</button> 548 </div> 549 </div> 550 } 551 } 552 else 553 { 554 if (showForm) 555 { 556 <div class="col-12 col-lg"> 557 558 @if (formParagraphId != null) 559 { 560 if (formType == "microsoft") 561 { 562 if (Pageview.IsVisualEditorMode) 563 { 564 <div class="container-xl alert alert-danger" role="alert"> 565 <h4>Use the "Microsoft Form" Paragraph instead</h4> 566 <p>Due to technical limitations within Microsoft Form Markup & Styling, we prefer that you use the "Microsoft Form" item instead, when you have no contact persons attatched this Contact Paragraph.</p> 567 <p>We are showing the default form in the frontend.</p> 568 </div> 569 } else { 570 @RenderParagraphContent(formParagraphId) 571 } 572 } 573 else 574 { 575 @RenderParagraphContent(formParagraphId) 576 } 577 } 578 </div> 579 } 580 } 581 </div> 582 </div> 583 </div> 584 </div> 585 </div> 586 </div> 587 </div> 588 </section> 589 } 590 else 591 { 592 if (Pageview.IsVisualEditorMode) 593 { 594 <div class="container-xl alert alert-danger" role="alert"> 595 This <strong>@Model.Item.SystemName</strong> is empty 596 </div> 597 } 598 } 599

Die UN-Nachhaltigkeitsziele

Der Hedeselskabet nutzt die 17 UN-Ziele als Entwicklungswerkzeug, das uns dazu aufruft, zu handeln und Ziele für unsere Auswirkungen zu setzen. Die folgenden Ziele sind besonders relevant für unsere Ziele und Zielsetzungen:

  • Ziel 12: Verantwortungsbewusster Konsum und Produktion, bei dem wir eine verantwortungsvolle Ressourcennutzung sicherstellen, indem wir Abfälle und Restprodukte wiederverwenden, Nebenströme zur Energiegewinnung nutzen und mit natürlichen Mitteln gegen den Klimawandel arbeiten.
  • Ziel 13: Klimaschutz, bei dem wir CO2 in unseren eigenen und verwalteten Wäldern binden und Aufgaben im Bereich Klimaschutz und Klimaanpassung lösen.
  • Ziel 15: Leben an Land, bei dem wir durch unsere PEFC-zertifizierten Wälder danach streben, terrestrische Ökosysteme zu erhalten und wiederherzustellen.
  • Ziel 17: Partnerschaften für die Ziele, bei denen unsere Lösungen für gesellschaftliche Herausforderungen nur in engen Allianzen mit Kunden, Mitarbeitern, Mitgliedern, dem öffentlichen Sektor, privaten Unternehmen und Forschern gefunden werden.

Hedeselskabet – mit der Natur als Partner

Dalgas ist Teil von Hedeselskabet – gegründet 1866 und immer noch im Wachstum. Hedeselskabet ist eine Vereinigung von Menschen, die für eine nachhaltige Zukunft arbeiten. Und die das notwendige Wissen und die Erfahrung haben, um voranzugehen.

Hedeselskabet unterstützt

Die Arbeit für eine nachhaltige Zukunft erfordert Ressourcen. Hedeselskabet beteiligt sich an der Entwicklung der Natur und der Umwelt und übernimmt Verantwortung. Deshalb vergeben wir Mittel für relevante Entwicklungsprojekte und für mitgliedergesteuerte Projekte, ebenso wie wir Stipendien vergeben. Zum Nutzen von uns allen – jetzt und in der Zukunft.

Wir schaffen Wert für Ihre Branche

Dalgas löst alle Arten von grünen Aufgaben in verschiedenen Branchen und Sektoren über verschiedene Dienstleistungen hinweg. Wir haben die Erfahrung, den Maschinenpark und die Referenzen, die Ihnen die bestmögliche Lösung garantieren.

No products in cart