From b7f8e56d8246662f736c38679d1b2ca293565d43 Mon Sep 17 00:00:00 2001 From: Thorge Petersen <petersen@rz.uni-kiel.de> Date: Mon, 27 Nov 2023 09:19:41 +0000 Subject: [PATCH] Display contact information on dataset page and use text-ellipsis for long description texts --- ckanext/odsh/assets/odsh.css | 69 +++++- ckanext/odsh/assets/odsh.js | 42 ++-- ckanext/odsh/assets/odsh_adjust_ellipsis.js | 79 ++++++ ckanext/odsh/assets/webassets.yml | 1 + ckanext/odsh/helpers.py | 14 ++ ckanext/odsh/i18n/ckanext-odsh.pot | 192 +++++++++------ .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo | Bin 22310 -> 23092 bytes .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po | 224 +++++++++++------- ckanext/odsh/plugin.py | 1 + ckanext/odsh/templates/header.html | 2 +- ckanext/odsh/templates/package/read.html | 84 ++++--- .../package/snippets/contact_details.html | 80 +++++++ .../snippets/contact_details_item.html | 62 +++++ .../package/snippets/resource_item.html | 45 ++-- ckanext/odsh/tests/test_odsh_helpers.py | 68 ++++-- 15 files changed, 708 insertions(+), 255 deletions(-) create mode 100644 ckanext/odsh/assets/odsh_adjust_ellipsis.js create mode 100644 ckanext/odsh/templates/package/snippets/contact_details.html create mode 100644 ckanext/odsh/templates/package/snippets/contact_details_item.html diff --git a/ckanext/odsh/assets/odsh.css b/ckanext/odsh/assets/odsh.css index fc32a357..59b462b7 100644 --- a/ckanext/odsh/assets/odsh.css +++ b/ckanext/odsh/assets/odsh.css @@ -4,6 +4,7 @@ --odsh-color-sh-blue: #003064; --odsh-color-sh-blue-light: #e4f2f8; --odsh-color-sh-blue-2: #0089ca; + --odsh-color-sh-grey-light: #f2f2f2; --odsh-color-sh-blue-grey: #657592; --odsh-color-sh-blue-dark: #001E49; } @@ -773,7 +774,7 @@ label.rangesearch.disabled { } .is-table-row .row-fluid [class*="span"] { - float: none; + float: left; display: block; } } @@ -3026,4 +3027,70 @@ body.filters-modal div.row>aside.secondary.span3 { .metadata-links ul { list-style: none; padding-left: 0px; +} + +section, .section { + margin-bottom: 48px; +} + +.sub-section { + background-color: #F6F6F6; + text-align: left; +} + +.sub-section h5 { + border-bottom: 2px solid #FFF; + padding: 10px; + margin: 0; + color: var(--odsh-color-sh-blue); +} + +.details .details-item { + margin: 3px 0; +} + +.sub-section .details a { + color: #4a4a4a; + margin: 0 10px; +} + + +.sub-section .table { + --bs-table-striped-bg: var(--odsh-color-sh-grey-light); +} + +.sub-section table td { + border-color: white; +} + +.sub-section .table > :not(:first-child) { + border-top: 0; +} + +.ellipsis-action { + position: relative; + width: 100%; +} + +.ellipsis-action .readless { + display: none; +} + +.ellipsis-action > .ellipsis-overlay { + height: 35px; + background-color: #fff; + position: absolute; + top: -35px; + width: 100%; + background: linear-gradient(to bottom,white 0%,rgba(255,255,255,0) 1%,white 100%); +} + +.resource-description .ellipsis-action > .ellipsis-overlay { + background-color: var(--odsh-color-sh-grey-light); + background: linear-gradient(to bottom,var(--odsh-color-sh-grey-light) 0%,rgba(255,255,255,0) 1%,var(--odsh-color-sh-grey-light) 100%); +} + +li.resource-item:hover .resource-description .ellipsis-action > .ellipsis-overlay { + background-color: #EEEEEE; + background: linear-gradient(to bottom,#EEEEEE 0%,rgba(255,255,255,0) 1%,#EEEEEE 100%); } \ No newline at end of file diff --git a/ckanext/odsh/assets/odsh.js b/ckanext/odsh/assets/odsh.js index 97cd4326..ca7e7493 100644 --- a/ckanext/odsh/assets/odsh.js +++ b/ckanext/odsh/assets/odsh.js @@ -1,29 +1,21 @@ -$(document).ready(function () -{ - $('.mylabel').click(function () - { - window.location = $(this).siblings('label').children('a').attr('href'); - }); +$(document).ready(function () { + $('.mylabel').click(function () { + window.location = $(this).siblings('label').children('a').attr('href'); + }); - let search = function (score) - { - return function () - { - // $('#label-score-'+score).toggleClass('checked') - $('#check-score-' + score).prop("checked", !$('#check-score-' + score).prop("checked")); - // $('#check-score-'+score).val(1) - $("#dataset-search-box-form").submit(); //TODO: use default or inject - } - } - for (let i = 1; i <= 5; i++) - { - $('.search-score-' + i).click(search(i)); - $('#check-score-' + i).click(function () - { - $("#dataset-search-box-form").submit(); //TODO: use default or inject - }); + let search = function (score) { + return function () { + // $('#label-score-'+score).toggleClass('checked') + $('#check-score-' + score).prop("checked", !$('#check-score-' + score).prop("checked")); + // $('#check-score-'+score).val(1) + $("#dataset-search-box-form").submit(); //TODO: use default or inject } + } + for (let i = 1; i <= 5; i++) { + $('.search-score-' + i).click(search(i)); + $('#check-score-' + i).click(function () { + $("#dataset-search-box-form").submit(); //TODO: use default or inject + }); + } }); - - diff --git a/ckanext/odsh/assets/odsh_adjust_ellipsis.js b/ckanext/odsh/assets/odsh_adjust_ellipsis.js new file mode 100644 index 00000000..f2d3adca --- /dev/null +++ b/ckanext/odsh/assets/odsh_adjust_ellipsis.js @@ -0,0 +1,79 @@ +$(document).ready(function () { + + function adjustEllipsis() { + $('.ellipsis-action').each(function () { + var ellipsisAction = $(this); + var targetId = ellipsisAction.data('target'); + var targetContent = $(targetId); + var maxContentHeight = ellipsisAction.data('max-height') || 150; + var overlay = $('.ellipsis-overlay', ellipsisAction); + var readMoreLink = $('.readmore', ellipsisAction); + var readLessLink = $('.readless', ellipsisAction); + + // Reset styles to calculate content height + targetContent.css({ + 'max-height': 'none', + 'overflow-y': 'visible' + }); + + var contentHeight = targetContent.height(); + + // Apply ellipsis functionality if necessary + if (contentHeight > maxContentHeight) { + ellipsisAction.show(); + if (targetContent.hasClass("full-text")) { + toggleEllipsisActions(false); + } else { + targetContent.css({ + 'max-height': maxContentHeight + 'px', + 'overflow-y': 'hidden' + }); + toggleEllipsisActions(true); + if (overlay) overlay.show(); + } + } else { + ellipsisAction.hide(); + } + + function toggleEllipsisActions(showReadMore) { + readMoreLink.toggle(showReadMore); + readLessLink.toggle(!showReadMore); + } + + readMoreLink.off('click').on('click', function (event) { + event.preventDefault(); + targetContent.css({ + 'max-height': 'none', + 'overflow-y': 'visible' + }); + targetContent.addClass("full-text"); + if (overlay) overlay.hide(); + toggleEllipsisActions(false); + }); + + readLessLink.off('click').on('click', function (event) { + event.preventDefault(); + targetContent.css({ + 'max-height': maxContentHeight + 'px', + 'overflow-y': 'hidden' + }); + targetContent.removeClass("full-text"); + if (overlay) overlay.show(); + toggleEllipsisActions(true); + $('html, body').animate({ + scrollTop: targetContent.offset().top + }, 50); + }); + }); + } + + // Call the function on page load + adjustEllipsis(); + + // Add an event listener for window resize + $(window).on('resize', function () { + // Call the adjustEllipsis function when window is resized + adjustEllipsis(); + }); + +}); diff --git a/ckanext/odsh/assets/webassets.yml b/ckanext/odsh/assets/webassets.yml index 37bb956c..3136df98 100644 --- a/ckanext/odsh/assets/webassets.yml +++ b/ckanext/odsh/assets/webassets.yml @@ -5,6 +5,7 @@ odsh_base_script: - vendor/jquery-ui-autocomplete/jquery-ui.js - autocomplete.js - odsh.js + - odsh_adjust_ellipsis.js odsh_base_style: output: ckanext-odsh/odsh_base.css diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py index 968b901f..7ade4ebf 100644 --- a/ckanext/odsh/helpers.py +++ b/ckanext/odsh/helpers.py @@ -791,3 +791,17 @@ def format_resource_format(format_str): return format_str[:-5] else: return format_str + + +def extract_email(text): + if not isinstance(text, str): + return None # Return None for non-string inputs + + # Regular expression pattern to match email addresses + email_pattern = r'[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}' + + # Find all email addresses in the input text using the regular expression pattern + matches = re.findall(email_pattern, text) + + # If there are matches, return the first email address found, else return None + return matches[0] if matches else None \ No newline at end of file diff --git a/ckanext/odsh/i18n/ckanext-odsh.pot b/ckanext/odsh/i18n/ckanext-odsh.pot index 919c1502..488cb5d1 100644 --- a/ckanext/odsh/i18n/ckanext-odsh.pot +++ b/ckanext/odsh/i18n/ckanext-odsh.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ckanext-odsh 2.3.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-02 11:41+0200\n" +"POT-Creation-Date: 2023-11-06 12:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.10.3\n" -#: ckanext/odsh/plugin.py:234 ckanext/odsh/plugin.py:243 ckanext/odsh/plugin.py:249 +#: ckanext/odsh/plugin.py:232 ckanext/odsh/plugin.py:241 ckanext/odsh/plugin.py:247 #: ckanext/odsh/templates/header.html:40 #: ckanext/odsh/templates/organization/index.html:3 #: ckanext/odsh/templates/organization/index.html:6 @@ -28,23 +28,23 @@ msgstr "" msgid "Organizations" msgstr "" -#: ckanext/odsh/plugin.py:235 ckanext/odsh/plugin.py:246 ckanext/odsh/plugin.py:252 +#: ckanext/odsh/plugin.py:233 ckanext/odsh/plugin.py:244 ckanext/odsh/plugin.py:250 msgid "Category" msgstr "" -#: ckanext/odsh/plugin.py:236 ckanext/odsh/plugin.py:244 ckanext/odsh/plugin.py:250 +#: ckanext/odsh/plugin.py:234 ckanext/odsh/plugin.py:242 ckanext/odsh/plugin.py:248 msgid "File format" msgstr "" -#: ckanext/odsh/plugin.py:237 ckanext/odsh/plugin.py:245 ckanext/odsh/plugin.py:251 -#: ckanext/odsh/templates/package/resource_read.html:170 +#: ckanext/odsh/plugin.py:235 ckanext/odsh/plugin.py:243 ckanext/odsh/plugin.py:249 +#: ckanext/odsh/templates/package/resource_read.html:162 #: ckanext/odsh/templates/package/snippets/info.html:75 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:91 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:98 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:111 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:118 msgid "License" msgstr "" -#: ckanext/odsh/plugin.py:239 +#: ckanext/odsh/plugin.py:237 msgid "Open-Data-Eigenschaften" msgstr "" @@ -91,6 +91,7 @@ msgstr "" #: ckanext/odsh/assets/odsh_image-upload.js:115 #: ckanext/odsh/assets/odsh_image-upload.js:186 #: ckanext/odsh/templates/organization/snippets/organization_form.html:19 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:35 #: ckanext/odsh/templates/package/snippets/resource_form.html:31 msgid "URL" msgstr "" @@ -174,6 +175,8 @@ msgstr "" #: ckanext/odsh/harvest_templates/source/search.html:60 #: ckanext/odsh/harvest_templates/source/search.html:62 #: ckanext/odsh/templates/footer.html:12 +#: ckanext/odsh/templates/package/snippets/contact_details.html:70 +#: ckanext/odsh/templates/package/snippets/contact_details.html:74 msgid "Contact" msgstr "" @@ -230,31 +233,39 @@ msgstr "" msgid "Harvester" msgstr "" -#: ckanext/odsh/templates/header.html:70 ckanext/odsh/templates/header.html:72 +#: ckanext/odsh/templates/header.html:68 +msgid "Sysadmin settings" +msgstr "" + +#: ckanext/odsh/templates/header.html:70 +msgid "Admin" +msgstr "" + +#: ckanext/odsh/templates/header.html:80 ckanext/odsh/templates/header.html:82 msgid "View profile" msgstr "" -#: ckanext/odsh/templates/header.html:77 ckanext/odsh/templates/header.html:80 +#: ckanext/odsh/templates/header.html:89 ckanext/odsh/templates/header.html:92 msgid "Edit profile" msgstr "" -#: ckanext/odsh/templates/header.html:85 ckanext/odsh/templates/header.html:87 +#: ckanext/odsh/templates/header.html:99 ckanext/odsh/templates/header.html:101 #: ckanext/odsh/templates/user/logout.html:4 msgid "Logout" msgstr "" -#: ckanext/odsh/templates/header.html:95 ckanext/odsh/templates/header.html:96 +#: ckanext/odsh/templates/header.html:110 ckanext/odsh/templates/header.html:111 #: ckanext/odsh/templates/user/login.html:3 #: ckanext/odsh/templates/user/login.html:10 #: ckanext/odsh/templates/user/login.html:16 msgid "Login" msgstr "" -#: ckanext/odsh/templates/header.html:101 +#: ckanext/odsh/templates/header.html:116 msgid "Sign language" msgstr "" -#: ckanext/odsh/templates/header.html:104 +#: ckanext/odsh/templates/header.html:119 msgid "Simple language" msgstr "" @@ -335,7 +346,7 @@ msgid "Raumbezug: Fehlender Wert" msgstr "" #: ckanext/odsh/templates/i18n_defaults.html:20 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:219 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:239 msgid "Tags" msgstr "" @@ -407,17 +418,27 @@ msgstr "" msgid "Start" msgstr "" +#: ckanext/odsh/templates/home/index.html:20 +msgid "" +"We promote transparency and innovation by publishing Schleswig-Holstein data " +"in open, free and reusable formats." +msgstr "" + +#: ckanext/odsh/templates/home/index.html:21 +msgid "Discover datasets" +msgstr "" + #: ckanext/odsh/templates/macros/form.html:410 msgid "Custom" msgstr "" #: ckanext/odsh/templates/macros/form.html:410 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:60 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:92 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:143 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:189 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:240 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:287 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:80 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:112 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:163 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:209 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:260 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:307 msgid "This field is required" msgstr "" @@ -521,8 +542,8 @@ msgid "My Organization" msgstr "" #: ckanext/odsh/templates/organization/snippets/organization_form.html:21 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:28 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:33 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:48 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:53 msgid "Description" msgstr "" @@ -554,7 +575,6 @@ msgid "Save Organization" msgstr "" #: ckanext/odsh/templates/organization/snippets/organization_item.html:15 -#: ckanext/odsh/templates/snippets/package_item.html:76 msgid "View {organization_name}" msgstr "" @@ -649,7 +669,7 @@ msgid "Draft" msgstr "" #: ckanext/odsh/templates/package/read.html:41 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:270 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:290 #: ckanext/odsh/templates/snippets/organization.html:24 #: ckanext/odsh/templates/snippets/package_item.html:83 msgid "Deleted" @@ -660,7 +680,7 @@ msgid "Manage Dataset" msgstr "" #: ckanext/odsh/templates/package/read.html:54 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:246 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:266 #: ckanext/odsh/templates/snippets/package_item.html:70 msgid "Private" msgstr "" @@ -683,28 +703,38 @@ msgid "" "href=\"%(is_replaced_by)s\">newer version</a>." msgstr "" -#: ckanext/odsh/templates/package/read.html:103 +#: ckanext/odsh/templates/package/read.html:93 +#: ckanext/odsh/templates/package/snippets/resource_item.html:28 +msgid "Read more »" +msgstr "" + +#: ckanext/odsh/templates/package/read.html:94 +#: ckanext/odsh/templates/package/snippets/resource_item.html:29 +msgid "« Read less" +msgstr "" + +#: ckanext/odsh/templates/package/read.html:110 msgid "Add new resource" msgstr "" -#: ckanext/odsh/templates/package/read.html:113 +#: ckanext/odsh/templates/package/read.html:120 #, python-format msgid "" "This record is part of the series <a href=\"%(url)s\">%(title)s</a>. You can " "browse to older and newer records." msgstr "" -#: ckanext/odsh/templates/package/read.html:121 +#: ckanext/odsh/templates/package/read.html:128 msgid "latest collection member" msgstr "" -#: ckanext/odsh/templates/package/read.html:126 -#: ckanext/odsh/templates/package/read.html:131 +#: ckanext/odsh/templates/package/read.html:133 +#: ckanext/odsh/templates/package/read.html:138 msgid "predecessor" msgstr "" -#: ckanext/odsh/templates/package/read.html:136 -#: ckanext/odsh/templates/package/read.html:141 +#: ckanext/odsh/templates/package/read.html:143 +#: ckanext/odsh/templates/package/read.html:148 msgid "successor" msgstr "" @@ -742,69 +772,69 @@ msgstr "" msgid "Source: <a href=\"%(url)s\">%(dataset)s</a>" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:109 +#: ckanext/odsh/templates/package/resource_read.html:101 msgid "There are no views created for this resource yet." msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:113 +#: ckanext/odsh/templates/package/resource_read.html:105 msgid "Not seeing the views you were expecting?" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:115 +#: ckanext/odsh/templates/package/resource_read.html:107 msgid "Click here for more information." msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:118 +#: ckanext/odsh/templates/package/resource_read.html:110 msgid "Here are some reasons you may not be seeing expected views:" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:120 +#: ckanext/odsh/templates/package/resource_read.html:112 msgid "No view has been created that is suitable for this resource" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:121 +#: ckanext/odsh/templates/package/resource_read.html:113 msgid "The site administrators may not have enabled the relevant view plugins" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:122 +#: ckanext/odsh/templates/package/resource_read.html:114 msgid "" "If a view requires the DataStore, the DataStore plugin may not be enabled, or" " the data may not have been pushed to the DataStore, or the DataStore hasn't " "finished processing the data yet" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:144 +#: ckanext/odsh/templates/package/resource_read.html:136 msgid "Additional Information" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:148 +#: ckanext/odsh/templates/package/resource_read.html:140 msgid "Field" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:149 +#: ckanext/odsh/templates/package/resource_read.html:141 msgid "Value" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:154 +#: ckanext/odsh/templates/package/resource_read.html:146 msgid "Data last updated" msgstr "" +#: ckanext/odsh/templates/package/resource_read.html:147 +#: ckanext/odsh/templates/package/resource_read.html:151 #: ckanext/odsh/templates/package/resource_read.html:155 #: ckanext/odsh/templates/package/resource_read.html:159 -#: ckanext/odsh/templates/package/resource_read.html:163 -#: ckanext/odsh/templates/package/resource_read.html:167 msgid "unknown" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:158 +#: ckanext/odsh/templates/package/resource_read.html:150 msgid "Metadata last updated" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:162 +#: ckanext/odsh/templates/package/resource_read.html:154 msgid "Created" msgstr "" -#: ckanext/odsh/templates/package/resource_read.html:166 +#: ckanext/odsh/templates/package/resource_read.html:158 #: ckanext/odsh/templates/package/snippets/resource_form.html:69 #: ckanext/odsh/templates/package/snippets/resource_info.html:26 msgid "Format" @@ -812,12 +842,12 @@ msgstr "" #: ckanext/odsh/templates/package/search.html:69 #: ckanext/odsh/templates/package/snippets/info.html:52 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:143 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:163 msgid "Period" msgstr "" #: ckanext/odsh/templates/package/search.html:79 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:156 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:176 #: ckanext/odsh/templates/snippets/search_form.html:115 msgid "from" msgstr "" @@ -837,7 +867,7 @@ msgid "wrong_start_date_for_search" msgstr "" #: ckanext/odsh/templates/package/search.html:94 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:170 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:190 #: ckanext/odsh/templates/snippets/search_form.html:142 msgid "to" msgstr "" @@ -867,6 +897,26 @@ msgstr "" msgid "View preview" msgstr "" +#: ckanext/odsh/templates/package/snippets/contact_details.html:72 +msgid "Creator" +msgstr "" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:73 +msgid "Maintainer" +msgstr "" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:75 +msgid "Publisher" +msgstr "" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:76 +msgid "Originator" +msgstr "" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:77 +msgid "Contributor" +msgstr "" + #: ckanext/odsh/templates/package/snippets/info.html:28 #: ckanext/odsh/templates/snippets/package_item.html:99 msgid "Category:" @@ -884,12 +934,12 @@ msgid "Modified" msgstr "" #: ckanext/odsh/templates/package/snippets/info.html:89 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:329 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:349 msgid "Musterdatensatz" msgstr "" #: ckanext/odsh/templates/package/snippets/info.html:99 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:234 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:254 msgid "Spatial uri" msgstr "" @@ -918,54 +968,58 @@ msgid "DCAT-AP.de metadata" msgstr "" #: ckanext/odsh/templates/package/snippets/package_basic_fields.html:10 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:14 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:15 msgid "Title" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:20 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:21 msgid "Enter title" msgstr "" #: ckanext/odsh/templates/package/snippets/package_basic_fields.html:37 +msgid "eg. my-dataset" +msgstr "" + +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:57 msgid "Enter description" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:59 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:79 msgid "Organization" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:67 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:87 msgid "" "No\n" " organization" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:118 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:138 #: ckanext/odsh/templates/user/snippets/login_form.html:23 msgid "enter name" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:189 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:209 msgid "Publication date" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:225 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:245 msgid "odsh tags placeholder" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:239 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:259 msgid "Visibility" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:246 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:266 msgid "Public" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:260 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:280 msgid "State" msgstr "" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:267 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:287 msgid "Active" msgstr "" @@ -1077,15 +1131,15 @@ msgstr "" msgid "Resource count" msgstr "" -#: ckanext/odsh/templates/package/snippets/resource_item.html:20 +#: ckanext/odsh/templates/package/snippets/resource_item.html:33 msgid "File size" msgstr "" -#: ckanext/odsh/templates/package/snippets/resource_item.html:24 +#: ckanext/odsh/templates/package/snippets/resource_item.html:37 msgid "Number of pages" msgstr "" -#: ckanext/odsh/templates/package/snippets/resource_item.html:29 +#: ckanext/odsh/templates/package/snippets/resource_item.html:43 msgid "download file" msgstr "" diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo index 19048e0f8754ccf02e9f6e0403cc210429c5b592..ec867b922cc9903c538c9d64fb2508e74012c98c 100644 GIT binary patch delta 7513 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 delta 6751 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 diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po index 649b4796..147f24d5 100644 --- a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po +++ b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ckanext-odsh 2.0.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-02 11:41+0200\n" -"PO-Revision-Date: 2023-08-02 11:41+0200\n" +"POT-Creation-Date: 2023-11-06 12:35+0100\n" +"PO-Revision-Date: 2023-11-06 12:40+0100\n" "Last-Translator: \n" "Language-Team: de <LL@li.org>\n" "Language: de\n" @@ -18,10 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.3.4\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0.1\n" -#: ckanext/odsh/plugin.py:234 ckanext/odsh/plugin.py:243 -#: ckanext/odsh/plugin.py:249 ckanext/odsh/templates/header.html:40 +#: ckanext/odsh/plugin.py:232 ckanext/odsh/plugin.py:241 +#: ckanext/odsh/plugin.py:247 ckanext/odsh/templates/header.html:40 #: ckanext/odsh/templates/organization/index.html:3 #: ckanext/odsh/templates/organization/index.html:6 #: ckanext/odsh/templates/organization/index.html:32 @@ -31,26 +31,26 @@ msgstr "" msgid "Organizations" msgstr "Herausgeber" -#: ckanext/odsh/plugin.py:235 ckanext/odsh/plugin.py:246 -#: ckanext/odsh/plugin.py:252 +#: ckanext/odsh/plugin.py:233 ckanext/odsh/plugin.py:244 +#: ckanext/odsh/plugin.py:250 msgid "Category" msgstr "Kategorie" -#: ckanext/odsh/plugin.py:236 ckanext/odsh/plugin.py:244 -#: ckanext/odsh/plugin.py:250 +#: ckanext/odsh/plugin.py:234 ckanext/odsh/plugin.py:242 +#: ckanext/odsh/plugin.py:248 msgid "File format" msgstr "Dateiformat" -#: ckanext/odsh/plugin.py:237 ckanext/odsh/plugin.py:245 -#: ckanext/odsh/plugin.py:251 -#: ckanext/odsh/templates/package/resource_read.html:170 +#: ckanext/odsh/plugin.py:235 ckanext/odsh/plugin.py:243 +#: ckanext/odsh/plugin.py:249 +#: ckanext/odsh/templates/package/resource_read.html:162 #: ckanext/odsh/templates/package/snippets/info.html:75 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:91 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:98 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:111 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:118 msgid "License" msgstr "Lizenz" -#: ckanext/odsh/plugin.py:239 +#: ckanext/odsh/plugin.py:237 msgid "Open-Data-Eigenschaften" msgstr "Open-Data-Eigenschaften" @@ -101,6 +101,7 @@ msgstr "Hochladen einer Datei auf Ihren Computer" #: ckanext/odsh/assets/odsh_image-upload.js:115 #: ckanext/odsh/assets/odsh_image-upload.js:186 #: ckanext/odsh/templates/organization/snippets/organization_form.html:19 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:35 #: ckanext/odsh/templates/package/snippets/resource_form.html:31 msgid "URL" msgstr "URL" @@ -184,6 +185,8 @@ msgstr "Zur Startseite des Open-Data-Portals" #: ckanext/odsh/harvest_templates/source/search.html:60 #: ckanext/odsh/harvest_templates/source/search.html:62 #: ckanext/odsh/templates/footer.html:12 +#: ckanext/odsh/templates/package/snippets/contact_details.html:70 +#: ckanext/odsh/templates/package/snippets/contact_details.html:74 msgid "Contact" msgstr "Kontakt" @@ -242,31 +245,40 @@ msgstr "Infos" msgid "Harvester" msgstr "Harvester" -#: ckanext/odsh/templates/header.html:70 ckanext/odsh/templates/header.html:72 +#: ckanext/odsh/templates/header.html:68 +msgid "Sysadmin settings" +msgstr "Sysadmin Einstellungen" + +#: ckanext/odsh/templates/header.html:70 +msgid "Admin" +msgstr "Admin" + +#: ckanext/odsh/templates/header.html:80 ckanext/odsh/templates/header.html:82 msgid "View profile" msgstr "Mein Profil einsehen" -#: ckanext/odsh/templates/header.html:77 ckanext/odsh/templates/header.html:80 +#: ckanext/odsh/templates/header.html:89 ckanext/odsh/templates/header.html:92 msgid "Edit profile" msgstr "Mein Profil bearbeiten" -#: ckanext/odsh/templates/header.html:85 ckanext/odsh/templates/header.html:87 +#: ckanext/odsh/templates/header.html:99 ckanext/odsh/templates/header.html:101 #: ckanext/odsh/templates/user/logout.html:4 msgid "Logout" msgstr "Logout" -#: ckanext/odsh/templates/header.html:95 ckanext/odsh/templates/header.html:96 +#: ckanext/odsh/templates/header.html:110 +#: ckanext/odsh/templates/header.html:111 #: ckanext/odsh/templates/user/login.html:3 #: ckanext/odsh/templates/user/login.html:10 #: ckanext/odsh/templates/user/login.html:16 msgid "Login" msgstr "Login" -#: ckanext/odsh/templates/header.html:101 +#: ckanext/odsh/templates/header.html:116 msgid "Sign language" msgstr "Gebärdensprache" -#: ckanext/odsh/templates/header.html:104 +#: ckanext/odsh/templates/header.html:119 msgid "Simple language" msgstr "Einfache Sprache" @@ -349,7 +361,7 @@ msgid "Raumbezug: Fehlender Wert" msgstr "Bitte geben Sie einen Ort ein" #: ckanext/odsh/templates/i18n_defaults.html:20 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:219 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:239 msgid "Tags" msgstr "Schlagwörter" @@ -421,17 +433,29 @@ msgstr "Willkommen" msgid "Start" msgstr "Start" +#: ckanext/odsh/templates/home/index.html:20 +msgid "" +"We promote transparency and innovation by publishing Schleswig-Holstein data " +"in open, free and reusable formats." +msgstr "" +"Wir fördern Transparenz und Innovation, indem wir Daten aus Schleswig-" +"Holstein in offenen, freien und wiederverwendbaren Formaten veröffentlichen." + +#: ckanext/odsh/templates/home/index.html:21 +msgid "Discover datasets" +msgstr "weitere Distribution" + #: ckanext/odsh/templates/macros/form.html:410 msgid "Custom" msgstr "Benutzerdefiniert" #: ckanext/odsh/templates/macros/form.html:410 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:60 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:92 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:143 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:189 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:240 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:287 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:80 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:112 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:163 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:209 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:260 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:307 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" @@ -535,8 +559,8 @@ msgid "My Organization" msgstr "Herausgeber" #: ckanext/odsh/templates/organization/snippets/organization_form.html:21 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:28 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:33 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:48 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:53 msgid "Description" msgstr "Beschreibung" @@ -571,7 +595,6 @@ msgid "Save Organization" msgstr "Herausgeber speichern" #: ckanext/odsh/templates/organization/snippets/organization_item.html:15 -#: ckanext/odsh/templates/snippets/package_item.html:76 msgid "View {organization_name}" msgstr "{organization_name} anzeigen" @@ -672,7 +695,7 @@ msgid "Draft" msgstr "Entwurf" #: ckanext/odsh/templates/package/read.html:41 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:270 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:290 #: ckanext/odsh/templates/snippets/organization.html:24 #: ckanext/odsh/templates/snippets/package_item.html:83 msgid "Deleted" @@ -683,7 +706,7 @@ msgid "Manage Dataset" msgstr "Datensatz bearbeiten" #: ckanext/odsh/templates/package/read.html:54 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:246 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:266 #: ckanext/odsh/templates/snippets/package_item.html:70 msgid "Private" msgstr "Privat" @@ -704,17 +727,27 @@ msgstr "" #: ckanext/odsh/templates/package/read.html:81 #, python-format msgid "" -"Note: This dataset has been replaced with a <a href=\"%(is_replaced_by)s" -"\">newer version</a>." +"Note: This dataset has been replaced with a <a " +"href=\"%(is_replaced_by)s\">newer version</a>." msgstr "" -"Hinweis: Dieser Datensatz wurde durch eine <a href=\"%(is_replaced_by)s" -"\">neuere Version</a> ersetzt." +"Hinweis: Dieser Datensatz wurde durch eine <a " +"href=\"%(is_replaced_by)s\">neuere Version</a> ersetzt." + +#: ckanext/odsh/templates/package/read.html:93 +#: ckanext/odsh/templates/package/snippets/resource_item.html:28 +msgid "Read more »" +msgstr "Mehr erfahren »" -#: ckanext/odsh/templates/package/read.html:103 +#: ckanext/odsh/templates/package/read.html:94 +#: ckanext/odsh/templates/package/snippets/resource_item.html:29 +msgid "« Read less" +msgstr "« Weniger anzeigen" + +#: ckanext/odsh/templates/package/read.html:110 msgid "Add new resource" msgstr "Neue Ressource hinzufügen" -#: ckanext/odsh/templates/package/read.html:113 +#: ckanext/odsh/templates/package/read.html:120 #, python-format msgid "" "This record is part of the series <a href=\"%(url)s\">%(title)s</a>. You can " @@ -723,17 +756,17 @@ msgstr "" "Dieser Datensatz ist Bestandteil der Reihe <a href=\"%(url)s\">%(title)s</" "a>. Sie können zu älteren und neueren Datensätzen blättern." -#: ckanext/odsh/templates/package/read.html:121 +#: ckanext/odsh/templates/package/read.html:128 msgid "latest collection member" msgstr "Neuester Datensatz" -#: ckanext/odsh/templates/package/read.html:126 -#: ckanext/odsh/templates/package/read.html:131 +#: ckanext/odsh/templates/package/read.html:133 +#: ckanext/odsh/templates/package/read.html:138 msgid "predecessor" msgstr "Vorgänger" -#: ckanext/odsh/templates/package/read.html:136 -#: ckanext/odsh/templates/package/read.html:141 +#: ckanext/odsh/templates/package/read.html:143 +#: ckanext/odsh/templates/package/read.html:148 msgid "successor" msgstr "Nachfolger" @@ -771,35 +804,35 @@ msgstr "Aus der Zusammenfassung des Datensatzes" msgid "Source: <a href=\"%(url)s\">%(dataset)s</a>" msgstr "Quelle: <a href=\"%(url)s\">%(dataset)s</a>" -#: ckanext/odsh/templates/package/resource_read.html:109 +#: ckanext/odsh/templates/package/resource_read.html:101 msgid "There are no views created for this resource yet." msgstr "Für diese Ressource sind noch keine Ansichten erstellt worden." -#: ckanext/odsh/templates/package/resource_read.html:113 +#: ckanext/odsh/templates/package/resource_read.html:105 msgid "Not seeing the views you were expecting?" msgstr "Sie sehen nicht die Ansichten, die Sie erwartet haben?" -#: ckanext/odsh/templates/package/resource_read.html:115 +#: ckanext/odsh/templates/package/resource_read.html:107 msgid "Click here for more information." msgstr "Klicken Sie hier für weitere Informationen." -#: ckanext/odsh/templates/package/resource_read.html:118 +#: ckanext/odsh/templates/package/resource_read.html:110 msgid "Here are some reasons you may not be seeing expected views:" msgstr "" "Hier sind einige Gründe, warum Sie möglicherweise nicht die erwarteten " "Ansichten sehen:" -#: ckanext/odsh/templates/package/resource_read.html:120 +#: ckanext/odsh/templates/package/resource_read.html:112 msgid "No view has been created that is suitable for this resource" msgstr "Es wurde keine Ansicht erstellt, die für diese Ressource geeignet ist" -#: ckanext/odsh/templates/package/resource_read.html:121 +#: ckanext/odsh/templates/package/resource_read.html:113 msgid "The site administrators may not have enabled the relevant view plugins" msgstr "" "Die Website-Administratoren haben möglicherweise die entsprechenden Ansichts-" "Plugins nicht aktiviert" -#: ckanext/odsh/templates/package/resource_read.html:122 +#: ckanext/odsh/templates/package/resource_read.html:114 msgid "" "If a view requires the DataStore, the DataStore plugin may not be enabled, " "or the data may not have been pushed to the DataStore, or the DataStore " @@ -810,38 +843,38 @@ msgstr "" "übertragen, oder der DataStore hat die Verarbeitung der Daten noch nicht " "abgeschlossen" -#: ckanext/odsh/templates/package/resource_read.html:144 +#: ckanext/odsh/templates/package/resource_read.html:136 msgid "Additional Information" msgstr "Zusätzliche Informationen" -#: ckanext/odsh/templates/package/resource_read.html:148 +#: ckanext/odsh/templates/package/resource_read.html:140 msgid "Field" msgstr "Feld" -#: ckanext/odsh/templates/package/resource_read.html:149 +#: ckanext/odsh/templates/package/resource_read.html:141 msgid "Value" msgstr "Wert" -#: ckanext/odsh/templates/package/resource_read.html:154 +#: ckanext/odsh/templates/package/resource_read.html:146 msgid "Data last updated" msgstr "Daten zuletzt aktualisiert" +#: ckanext/odsh/templates/package/resource_read.html:147 +#: ckanext/odsh/templates/package/resource_read.html:151 #: ckanext/odsh/templates/package/resource_read.html:155 #: ckanext/odsh/templates/package/resource_read.html:159 -#: ckanext/odsh/templates/package/resource_read.html:163 -#: ckanext/odsh/templates/package/resource_read.html:167 msgid "unknown" msgstr "unbekannt" -#: ckanext/odsh/templates/package/resource_read.html:158 +#: ckanext/odsh/templates/package/resource_read.html:150 msgid "Metadata last updated" msgstr "Metadaten zuletzt aktualisiert" -#: ckanext/odsh/templates/package/resource_read.html:162 +#: ckanext/odsh/templates/package/resource_read.html:154 msgid "Created" msgstr "Erstellt" -#: ckanext/odsh/templates/package/resource_read.html:166 +#: ckanext/odsh/templates/package/resource_read.html:158 #: ckanext/odsh/templates/package/snippets/resource_form.html:69 #: ckanext/odsh/templates/package/snippets/resource_info.html:26 msgid "Format" @@ -849,12 +882,12 @@ msgstr "Format" #: ckanext/odsh/templates/package/search.html:69 #: ckanext/odsh/templates/package/snippets/info.html:52 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:143 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:163 msgid "Period" msgstr "Zeitraum" #: ckanext/odsh/templates/package/search.html:79 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:156 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:176 #: ckanext/odsh/templates/snippets/search_form.html:115 msgid "from" msgstr "von" @@ -874,7 +907,7 @@ msgid "wrong_start_date_for_search" msgstr "Das Startdatum ist ungültig" #: ckanext/odsh/templates/package/search.html:94 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:170 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:190 #: ckanext/odsh/templates/snippets/search_form.html:142 msgid "to" msgstr "bis" @@ -904,6 +937,26 @@ msgstr "Ansicht anzeigen" msgid "View preview" msgstr "Vorschau ansehen" +#: ckanext/odsh/templates/package/snippets/contact_details.html:72 +msgid "Creator" +msgstr "Autor" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:73 +msgid "Maintainer" +msgstr "Verwalter" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:75 +msgid "Publisher" +msgstr "Herausgeber" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:76 +msgid "Originator" +msgstr "Urheber" + +#: ckanext/odsh/templates/package/snippets/contact_details.html:77 +msgid "Contributor" +msgstr "Bearbeiter" + #: ckanext/odsh/templates/package/snippets/info.html:28 #: ckanext/odsh/templates/snippets/package_item.html:99 msgid "Category:" @@ -921,12 +974,12 @@ msgid "Modified" msgstr "Zuletzt bearbeitet" #: ckanext/odsh/templates/package/snippets/info.html:89 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:329 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:349 msgid "Musterdatensatz" msgstr "Musterdatensatz" #: ckanext/odsh/templates/package/snippets/info.html:99 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:234 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:254 msgid "Spatial uri" msgstr "Raumbezug" @@ -955,54 +1008,60 @@ msgid "DCAT-AP.de metadata" msgstr "Metadaten nach DCAT-AP.de" #: ckanext/odsh/templates/package/snippets/package_basic_fields.html:10 -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:14 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:15 msgid "Title" msgstr "Titel" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:20 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:21 msgid "Enter title" msgstr "Titel eingeben" #: ckanext/odsh/templates/package/snippets/package_basic_fields.html:37 +#, fuzzy +#| msgid "dataset" +msgid "eg. my-dataset" +msgstr "Datensatz" + +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:57 msgid "Enter description" msgstr "Beschreibung eingeben" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:59 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:79 msgid "Organization" msgstr "Herausgeber" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:67 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:87 msgid "" "No\n" " organization" msgstr "Kein Herausgeber" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:118 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:138 #: ckanext/odsh/templates/user/snippets/login_form.html:23 msgid "enter name" msgstr "Name eingeben" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:189 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:209 msgid "Publication date" msgstr "Publikationsdatum" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:225 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:245 msgid "odsh tags placeholder" msgstr "z.B. Energie; Politik; Umwelt; Alle; ..." -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:239 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:259 msgid "Visibility" msgstr "Sichtbarkeit" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:246 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:266 msgid "Public" msgstr "Öffentlich" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:260 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:280 msgid "State" msgstr "Status" -#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:267 +#: ckanext/odsh/templates/package/snippets/package_basic_fields.html:287 msgid "Active" msgstr "Aktiv" @@ -1118,15 +1177,15 @@ msgstr "Name Ressource" msgid "Resource count" msgstr "Anzahl Ressourcen" -#: ckanext/odsh/templates/package/snippets/resource_item.html:20 +#: ckanext/odsh/templates/package/snippets/resource_item.html:33 msgid "File size" msgstr "Dateigröße" -#: ckanext/odsh/templates/package/snippets/resource_item.html:24 +#: ckanext/odsh/templates/package/snippets/resource_item.html:37 msgid "Number of pages" msgstr "Seitenanzahl" -#: ckanext/odsh/templates/package/snippets/resource_item.html:29 +#: ckanext/odsh/templates/package/snippets/resource_item.html:43 msgid "download file" msgstr "Datei herunterladen" @@ -1140,8 +1199,8 @@ msgid "" "<p class=\"empty\">This dataset has no data, <a href=\"%(url)s\">why not add " "some?</a></p>" msgstr "" -"<p class=\"empty\">Dieser Datensatz enthält keine Daten, <a href=\"%(url)s" -"\">Warum nicht welche hinzufügen?</a></p>" +"<p class=\"empty\">Dieser Datensatz enthält keine Daten, <a " +"href=\"%(url)s\">Warum nicht welche hinzufügen?</a></p>" #: ckanext/odsh/templates/package/snippets/resources_list.html:30 msgid "This dataset has no data" @@ -1486,6 +1545,9 @@ msgstr "Einloggen" msgid "Not authorized to see this page" msgstr "Nicht berechtigt, diese Seite zu sehen" +#~ msgid "Contact Person" +#~ msgstr "Ansprechstelle" + #~ msgid "Enter search query for datasets" #~ msgstr "Suchanfrage für Datensätze eingeben" diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index ee6126c9..e71e2322 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -331,6 +331,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm 'odsh_extract_error': helpers_odsh.odsh_extract_error, 'odsh_extract_error_new': helpers_odsh.odsh_extract_error_new, 'odsh_extract_value_from_extras': helpers_odsh.odsh_extract_value_from_extras, + 'extract_email': helpers_odsh.extract_email, 'odsh_create_checksum': helpers_odsh.odsh_create_checksum, 'presorted_license_options': helpers_odsh.presorted_license_options, 'odsh_has_more_facets': helpers_odsh.odsh_has_more_facets, diff --git a/ckanext/odsh/templates/header.html b/ckanext/odsh/templates/header.html index ed80dc23..429f730b 100644 --- a/ckanext/odsh/templates/header.html +++ b/ckanext/odsh/templates/header.html @@ -27,7 +27,7 @@ <div class="container navigation-container"> <div class='row navigation-row'> - <nav class="section navigation"> + <nav class="navigation"> <ul class="nav nav-pills"> <li class="header-menu-mobile" data-module="odsh_toggle_menu"> <a>{{ _('Menu') }}</a> diff --git a/ckanext/odsh/templates/package/read.html b/ckanext/odsh/templates/package/read.html index 03688153..11057ec8 100644 --- a/ckanext/odsh/templates/package/read.html +++ b/ckanext/odsh/templates/package/read.html @@ -54,47 +54,54 @@ {{ _('Private') }} </span> </div> - {% endif %} - </h2> - <div class="dataset-stars"> - {% if stars>-1%} - {% snippet "qa/stars.html", stars=stars %} - {% endif %} + {% endif %} + </h2> + <div class="dataset-stars"> + {% if stars>-1%} + {% snippet "qa/stars.html", stars=stars %} + {% endif %} + </div> </div> - </div> {# {{ pkg.resources }} #} - {% block package_notes %} - <div class="btn btn-primary btn-lg show-filters" role="button"> - <img src="/base/images/icon_info.svg" aria-hidden="true" /> - {{ _('Detailed information') }} - </div> - {% if successor_url %} - <p class="hint-newer-version"> - {% trans %} - Note: A <a href="{{ latest_collection_member }}">newer version</a> of this dataset is available. - {% endtrans %} - </p> - {% endif %} - {% if is_replaced_by %} - <div class="hint-newer-version"> - {% trans %} - Note: This dataset has been replaced with a <a href="{{ is_replaced_by }}">newer version</a>. - {% endtrans %} - </div> - {% endif %} - {% if pkg.notes %} - <div class="notes embedded-content"> - {{ h.render_markdown(h.get_translated(pkg, 'notes')) }} - </div> - {% endif %} - {% if version_notes %} - <div class="version-notes"> - {{ version_notes }} + {% block package_notes %} + <div class="btn btn-primary btn-lg show-filters" role="button"> + <img src="/base/images/icon_info.svg" aria-hidden="true" /> + {{ _('Detailed information') }} </div> - {% endif %} - {% endblock package_notes %} -{% endblock package_description %} + {% if successor_url %} + <p class="hint-newer-version"> + {% trans %} + Note: A <a href="{{ latest_collection_member }}">newer version</a> of this dataset is available. + {% endtrans %} + </p> + {% endif %} + {% if is_replaced_by %} + <div class="hint-newer-version"> + {% trans %} + Note: This dataset has been replaced with a <a href="{{ is_replaced_by }}">newer version</a>. + {% endtrans %} + </div> + {% endif %} + {% if pkg.notes %} + <div class="notes"> + <div class="embedded-content" id="dataset-notes"> + {{ h.render_markdown(h.get_translated(pkg, 'notes')) }} + </div> + <div class="ellipsis-action" data-target="#dataset-notes" data-max-height="250"> + <div class="ellipsis-overlay"></div> + <a title="Read more" class="readmore" href="#">{% trans %}Read more »{% endtrans %}</a> + <a title="Read less" class="readless" href="#">{% trans %}« Read less{% endtrans %}</a> + </div> + </div> + {% endif %} + {% if version_notes %} + <div class="version-notes"> + {{ version_notes }} + </div> + {% endif %} + {% endblock package_notes %} + {% endblock package_description %} {% block package_resources %} {% snippet "package/snippets/resources_list.html", pkg=pkg, resources=pkg.resources %} @@ -147,6 +154,9 @@ {% endif %} {# latest_collection_member #} {% endblock collection %} +{% block contact %} + {% snippet "package/snippets/contact_details.html", pkg=pkg %} +{% endblock contact %} <div class='tag-container'> {% for tag in pkg.tags %} diff --git a/ckanext/odsh/templates/package/snippets/contact_details.html b/ckanext/odsh/templates/package/snippets/contact_details.html new file mode 100644 index 00000000..1f6947d7 --- /dev/null +++ b/ckanext/odsh/templates/package/snippets/contact_details.html @@ -0,0 +1,80 @@ +{% set author_data = { + 'name': pkg.author, + 'email': h.extract_email(pkg.author_email), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'author_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'author_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'author_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'author_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'author_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'author_country') +} %} + +{% set maintainer_data = { + 'name': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_name'), + 'email': h.extract_email(h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_email')), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'maintainer_country') +} %} + +{% set contact_data = { + 'name': h.odsh_extract_value_from_extras(pkg.extras, 'contact_name'), + 'email': h.extract_email(h.odsh_extract_value_from_extras(pkg.extras, 'contact_email')), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'contact_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'contact_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'contact_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'contact_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'contact_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'contact_country') +} %} + +{% set publisher_data = { + 'name': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_name'), + 'email': h.extract_email(h.odsh_extract_value_from_extras(pkg.extras, 'publisher_email')), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'publisher_country') +} %} + +{% set originator_data = { + 'name': h.odsh_extract_value_from_extras(pkg.extras, 'originator_name'), + 'email': h.extract_email(h.odsh_extract_value_from_extras(pkg.extras, 'originator_email')), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'originator_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'originator_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'originator_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'originator_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'originator_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'originator_country') +} %} + +{% set contributor_data = { + 'name': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_name'), + 'email': h.extract_email(h.odsh_extract_value_from_extras(pkg.extras, 'contributor_email')), + 'tel': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_tel'), + 'fax': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_fax'), + 'city': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_city'), + 'zip': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_zip'), + 'street': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_street'), + 'country': h.odsh_extract_value_from_extras(pkg.extras, 'contributor_country') +} %} + + +{% if author_data.name or maintainer_data.name or contact_data.name or publisher_data.name or originator_data.name or contributor_data.name %} +<div class="section"> + <h3>{{ _('Contact') }}</h3> + + {% snippet "package/snippets/contact_details_item.html", data=author_data, title=_('Creator') %} + {% snippet "package/snippets/contact_details_item.html", data=maintainer_data, title=_('Maintainer') %} + {% snippet "package/snippets/contact_details_item.html", data=contact_data, title=_('Contact') %} + {% snippet "package/snippets/contact_details_item.html", data=publisher_data, title=_('Publisher') %} + {% snippet "package/snippets/contact_details_item.html", data=originator_data, title=_('Originator') %} + {% snippet "package/snippets/contact_details_item.html", data=contributor_data, title=_('Contributor') %} + +</div> +{% endif %} \ No newline at end of file diff --git a/ckanext/odsh/templates/package/snippets/contact_details_item.html b/ckanext/odsh/templates/package/snippets/contact_details_item.html new file mode 100644 index 00000000..c7d073fd --- /dev/null +++ b/ckanext/odsh/templates/package/snippets/contact_details_item.html @@ -0,0 +1,62 @@ +{% if data and (data.name or data.email or data.street or data.tel) and title %} +<div class="sub-section"> + <h5>{{ title }}</h5> + <table class="table table-striped"> + <tbody> + <tr> + <td> + {% if data.name %} + <p> + <span>{{ data.name }}</span> + </p> + {% endif %} + {% if data.street %} + <p> + {% if data.street %} + {{ data.street }} + {% endif %} + {% if data.zip and data.city %} + <br> + {{ data.zip }} + {{ data.city }} + {% endif %} + {% if data.country %} + <br> + {{ data.country }} + {% endif %} + </p> + {% endif %} + {% if data.email or data.tel or data.fax %} + <div class="details"> + {% if data.email %} + <div class="details-item"> + <i class="fa-solid fa-envelope"></i> + <a href="mailto:{{ data.email }}"> + {{ data.email }} + </a> + </div> + {% endif %} + {% if data.tel %} + <div class="details-item"> + <i class="fa-solid fa-phone"></i> + <a href="tel:{{ data.tel }}"> + {{ data.tel }} + </a> + </div> + {% endif %} + {% if data.fax %} + <div class="details-item"> + <i class="fa-solid fa-fax"></i> + <a href="fax:{{ data.fax }}"> + {{ data.fax }} + </a> + </div> + {% endif %} + </div> + {% endif %} + </td> + </tr> + </tbody> + </table> +</div> +{% endif %} \ No newline at end of file diff --git a/ckanext/odsh/templates/package/snippets/resource_item.html b/ckanext/odsh/templates/package/snippets/resource_item.html index 7f2e4238..5c957ea6 100644 --- a/ckanext/odsh/templates/package/snippets/resource_item.html +++ b/ckanext/odsh/templates/package/snippets/resource_item.html @@ -10,28 +10,35 @@ <li class="resource-item" data-id="{{ res.id }}"> <div class="resource-title-container"> - <div class="resource-title" title="{{ rtitle }}"> - {% if res.name %} + {% if res.name %} + <div class="resource-title" title="{{ rtitle }}"> <a href="{{ download }}" title="{{ res.name }}"> - {{ h.resource_display_name(res) | truncate(50) }} + {{ h.resource_display_name(res) | truncate(120) }} </a> - {% endif %} - </div> - {% block resource_item_description %} - <div class="resource-description"> - {% if res.description %} - <p class="description"> - {{ h.markdown_extract(res.description, extract_length=100) }} - </p> - {% endif %} - {% if resource_size %} - <p>{{ _('File size') }}: {{ resource_size }}</p> - {% endif %} - {% set number_of_pages = res.get('number_of_pages') %} - {% if number_of_pages%} - <p>{{ _('Number of pages') }}: {{ number_of_pages }}</p> - {% endif %} </div> + {% endif %} + {% block resource_item_description %} + {% if res.description or resource_size %} + <div class="resource-description"> + {% if res.description %} + <p class="description" id="resource-description-{{ res.id }}"> + {{ h.markdown_extract(res.description, extract_length=0) }} + </p> + <div class="ellipsis-action" data-target="#resource-description-{{ res.id }}" data-max-height="75"> + <div class="ellipsis-overlay"></div> + <a title="Read more" class="readmore" href="#">{% trans %}Read more »{% endtrans %}</a> + <a title="Read less" class="readless" href="#">{% trans %}« Read less{% endtrans %}</a> + </div> + {% endif %} + {% if resource_size %} + <p>{{ _('File size') }}: {{ resource_size }}</p> + {% endif %} + <!-- {% set number_of_pages = res.get('number_of_pages') %} + {% if number_of_pages%} + <p>{{ _('Number of pages') }}: {{ number_of_pages }}</p> + {% endif %} --> + </div> + {% endif %} {% endblock %} <div class="resource-icons"> {% block resource_item_explore_links %} diff --git a/ckanext/odsh/tests/test_odsh_helpers.py b/ckanext/odsh/tests/test_odsh_helpers.py index fba58f02..cdb33260 100644 --- a/ckanext/odsh/tests/test_odsh_helpers.py +++ b/ckanext/odsh/tests/test_odsh_helpers.py @@ -2,34 +2,58 @@ import datetime from mock import patch import unittest -from ckanext.odsh.helpers import is_within_last_month +from ckanext.odsh.helpers import is_within_last_month, extract_email -class Test_is_within_last_month(unittest.TestCase): - def test_it_returns_true_for_simple_query(self): +class TestHelpers(unittest.TestCase): + # is_within_last_month + def test_within_last_month_with_same_month(self): date = datetime.date(2019, 4, 15) date_ref = datetime.date(2019, 4, 29) - assert is_within_last_month(date, date_ref) - - def test_it_uses_today_if_date_ref_missing(self): - date = datetime.date.today() - datetime.timedelta(days=20) - assert is_within_last_month(date) - - def test_it_returns_true_for_dates_in_different_years(self): + self.assertTrue(is_within_last_month(date, date_ref)) + + def test_within_last_month_with_different_years(self): date = datetime.date(2018, 12, 16) date_ref = datetime.date(2019, 1, 15) - assert is_within_last_month(date, date_ref) - - def test_it_returns_false_for_dates_in_different_years(self): - date = datetime.date(2018, 12, 15) - date_ref = datetime.date(2019, 1, 15) - assert is_within_last_month(date, date_ref)==False - - def test_it_returns_true_for_dates_in_differen_months(self): + self.assertTrue(is_within_last_month(date, date_ref)) + + def test_within_last_month_with_different_months(self): date = datetime.date(2018, 6, 16) date_ref = datetime.date(2018, 7, 10) - assert is_within_last_month(date, date_ref) - - def test_it_return_false_for_date_in_different_months(self): + self.assertTrue(is_within_last_month(date, date_ref)) + + def test_within_last_month_returns_false_for_invalid_dates(self): + date = datetime.date(2018, 12, 15) + date_ref = datetime.date(2019, 1, 15) + self.assertFalse(is_within_last_month(date, date_ref)) + + def test_within_last_month_returns_false_for_dates_in_different_months(self): date = datetime.date(2018, 6, 8) date_ref = datetime.date(2018, 7, 10) - assert is_within_last_month(date, date_ref)==False + self.assertFalse(is_within_last_month(date, date_ref)) + + def test_within_last_month_uses_today_if_date_ref_missing(self): + date = datetime.date.today() - datetime.timedelta(days=20) + self.assertTrue(is_within_last_month(date)) + + # extract_email + def test_extract_email_with_mailto_prefix(self): + email = extract_email("mailto:user1@example.com") + self.assertEqual(email, "user1@example.com") + + def test_extract_email_without_mailto_prefix(self): + email = extract_email("user1@example.com") + self.assertEqual(email, "user1@example.com") + + def test_extract_email_invalid_input(self): + email = extract_email("thisisnomail") + self.assertIsNone(email) + + email = extract_email(None) + self.assertIsNone(email) + + def test_extract_email_multiple_emails(self): + email = extract_email("Emails: user1@example.com, user2@example.com") + self.assertEqual(email, "user1@example.com") + +if __name__ == '__main__': + unittest.main() \ No newline at end of file -- GitLab