diff --git a/.circleci/config.yml b/.circleci/config.yml index 0d34a799b..85fbab477 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ orbs: jobs: test: docker: - - image: openknowledge/ckan-dev:2.9 # primary executor + - image: ckan/ckan-dev:2.10.4 # primary executor name: ckan environment: PGHOST: postgres @@ -39,7 +39,7 @@ jobs: CKAN_REDIS_URL: redis://redis:6379/1 - image: opendatacanada/solr # dependency service name: solr - - image: postgres:9.6 # dependency service + - image: postgres:13.14 # dependency service name: postgres environment: POSTGRES_USER: postgres @@ -54,33 +54,41 @@ jobs: - "0c:02:84:7e:c0:46:16:eb:9b:5e:1d:c9:f8:3b:5a:3d" - checkout - run: - name: Set CKAN to open-data/ckan@canada-py3 + name: Set Python Version to 3.9 + command: | + apk add --no-cache python3=3.9.18-r0 --repository=https://dl-cdn.alpinelinux.org/alpine/v3.15/main + ln -sf python3 /usr/local/bin/python + python3 -m ensurepip + pip3 install --no-cache --upgrade pip setuptools + python3 --version + - run: + name: Set CKAN to open-data/ckan@canada-v2.10 command: | pip uninstall -y ckan git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ remote add canada https://github.com/open-data/ckan.git - git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ fetch canada canada-py3 - git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ checkout -b canada-py3 canada/canada-py3 + git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ fetch canada canada-v2.10 + git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ checkout -b canada-v2.10 canada/canada-v2.10 git --git-dir=\/srv\/app\/src\/ckan\/.git --work-tree=\/srv\/app\/src\/ckan\/ pull - run: name: Install requirements command: | apk add jpeg-dev - pip install setuptools==44.1.0 + pip install --upgrade setuptools==70.0.0 pip install --upgrade pip==23.2.1 pip install -e \/srv\/app\/src\/ckan\/ -r \/srv\/app\/src\/ckan\/requirements.txt -r \/srv\/app\/src\/ckan\/dev-requirements.txt pip install -e 'git+https://github.com/ckan/ckanapi.git#egg=ckanapi' -r 'https://raw.githubusercontent.com/ckan/ckanapi/master/requirements.txt' pip install -e . -r .\/requirements.txt -r .\/test-requirements.txt pip install -e 'git+https://github.com/ckan/ckanext-fluent.git#egg=ckanext-fluent' -r 'https://raw.githubusercontent.com/ckan/ckanext-fluent/master/requirements.txt' - pip install -e 'git+https://github.com/open-data/ckanext-recombinant.git#egg=ckanext-recombinant' -r 'https://raw.githubusercontent.com/open-data/ckanext-recombinant/master/requirements.txt' + pip install -e 'git+https://github.com/open-data/ckanext-recombinant.git@canada-v2.10#egg=ckanext-recombinant' -r 'https://raw.githubusercontent.com/open-data/ckanext-recombinant/canada-v2.10/requirements.txt' pip install -e 'git+https://github.com/ckan/ckanext-scheming.git#egg=ckanext-scheming' - pip install -e 'git+https://github.com/open-data/ckanext-validation.git@canada-py3#egg=ckanext-validation' -r 'https://raw.githubusercontent.com/open-data/ckanext-validation/canada-py3/requirements.txt' -r 'https://raw.githubusercontent.com/open-data/ckanext-validation/canada-py3/dev-requirements.txt' - pip install -e 'git+https://github.com/open-data/ckanext-xloader.git@canada-py3#egg=ckanext-xloader' -r 'https://raw.githubusercontent.com/open-data/ckanext-xloader/canada-py3/requirements.txt' -r 'https://raw.githubusercontent.com/open-data/ckanext-xloader/canada-py3/dev-requirements.txt' + pip install -e 'git+https://github.com/open-data/ckanext-validation.git@canada-v2.10#egg=ckanext-validation' -r 'https://raw.githubusercontent.com/open-data/ckanext-validation/canada-v2.10/requirements.txt' -r 'https://raw.githubusercontent.com/open-data/ckanext-validation/canada-v2.10/dev-requirements.txt' + pip install -e 'git+https://github.com/open-data/ckanext-xloader.git@canada-v2.10#egg=ckanext-xloader' -r 'https://raw.githubusercontent.com/open-data/ckanext-xloader/canada-v2.10/requirements.txt' -r 'https://raw.githubusercontent.com/open-data/ckanext-xloader/canada-v2.10/dev-requirements.txt' pip install -e 'git+https://github.com/ckan/ckantoolkit.git#egg=ckantoolkit' -r 'https://raw.githubusercontent.com/ckan/ckantoolkit/master/requirements.txt' - pip install -e 'git+https://github.com/open-data/goodtables.git@canada-py3#egg=goodtables' -r 'https://raw.githubusercontent.com/open-data/goodtables/canada-py3/requirements.txt' - pip install -e 'git+https://github.com/open-data/ckanext-security.git@canada-py3#egg=ckanext-security' -r 'https://raw.githubusercontent.com/open-data/ckanext-security/canada-py3/requirements.txt' + pip install -e 'git+https://github.com/open-data/frictionless-py.git@canada-v2.10#egg=frictionless' -r 'https://raw.githubusercontent.com/open-data/frictionless-py/canada-v2.10/requirements.txt' + pip install -e 'git+https://github.com/open-data/ckanext-security.git@canada-v2.10#egg=ckanext-security' -r 'https://raw.githubusercontent.com/open-data/ckanext-security/canada-v2.10/requirements.txt' find \/srv\/app\/ -name '*.pyc' -delete - run: - name: Setup extension (CKAN 2.9 PY3) + name: Setup extension (CKAN 2.10 PY3.9) command: | ln -s \/srv\/app\/src\/ckan\/test-core.ini .\/links\/test-core.ini ln -s \/srv\/app\/src\/ckan\/who.ini .\/links\/who.ini @@ -93,12 +101,14 @@ jobs: ckan -c test-core.ini datastore set-permissions | psql -U postgres --set ON_ERROR_STOP=1 ckan -c test-core.ini canada update-triggers ckan -c test-core.ini recombinant create-triggers -a + ckan -c test-core.ini db upgrade + ckan -c test-core.ini db pending-migrations --apply python3 .\/bin\/download_country.py - run: name: Run all tests command: | mkdir -p ~/junit/result - pytest --ckan-ini=test-core.ini ckanext/canada/tests --junitxml=~/junit/result/junit.xml + pytest --ckan-ini=test-core.ini --disable-warnings ckanext/canada/tests --junitxml=~/junit/result/junit.xml - store_test_results: path: ~/junit - slack/notify: diff --git a/bin/ati_to_datastore_create.py b/bin/ati_to_datastore_create.py index f6b0d9b60..43ec4d83a 100755 --- a/bin/ati_to_datastore_create.py +++ b/bin/ati_to_datastore_create.py @@ -28,23 +28,23 @@ def org_info(): break except ckanapi.errors.CKANAPIError: count += 1 - print >> sys.stderr, 'Error read org list from open.canada.ca' + print('Error read org list from open.canada.ca', file=sys.stderr) time.sleep(2) res = {} for rec in orgs: count = 0 while count <=50: try: - print >> sys.stderr, 'read org ' + rec['name'] + print('read org ' + rec['name'], file=sys.stderr) org = site.action.organization_show(id=rec['id']) break except ckanapi.errors.CKANAPIError: count += 1 org = None - print >> sys.stderr, 'Error read org ' + rec['name'] + print('Error read org ' + rec['name'], file=sys.stderr) time.sleep(2) if not org: - print >> sys.stderr, 'Network error' + print('Network error', file=sys.stderr) sys.exit(-1) extras = org['extras'] ati_email = None @@ -66,7 +66,7 @@ def org_info(): rec['org_title_fr'] = title[1] rec['ati_email'] = org_dict.get(rec['owner_org'], '') -print json.dumps({ +print(json.dumps({ 'resource_id': '19383ca2-b01a-487d-88f7-e1ffbc7d39c2', 'fields': [ {'id':'year', 'type':'int'}, @@ -85,4 +85,4 @@ def org_info(): 'indexes': ['year', 'month'], 'force': True, 'records': list(csv), -}) +})) diff --git a/bin/filter/filter_nap5.py b/bin/filter/filter_nap5.py index 50b685a77..c38e04e1c 100755 --- a/bin/filter/filter_nap5.py +++ b/bin/filter/filter_nap5.py @@ -28,7 +28,8 @@ ] def main(): - table = yaml.load(open(TABLE_YAML, 'r')) + with open(TABLE_YAML, 'r') as f: + table = yaml.load(f, yaml.Loader) for field in table['resources'][0]['fields']: if field['datastore_id'] == 'indicators': break diff --git a/bin/import_xml2obd.py b/bin/import_xml2obd.py index cd5e4d1a2..fe9ce264b 100644 --- a/bin/import_xml2obd.py +++ b/bin/import_xml2obd.py @@ -30,11 +30,11 @@ import csv -from azure.storage.blob import BlockBlobService +from azure.storage.blob import BlobServiceClient from azure.common import AzureMissingResourceHttpError from azure.storage.blob import ContentSettings -import urllib2 +import urllib import ckanapi import ckan from ckanapi.errors import CKANAPIError @@ -106,7 +106,7 @@ def base64md5str(val): def read_presets(filename): with open(filename, 'r') as f: - _presets = yaml.load(f) + _presets = yaml.load(f, yaml.Loader) return _presets @@ -379,7 +379,7 @@ def upload_resources(remote_site, api_key, jsonfile, resource_directory): target_pkg = site.action.package_show(id=rec['id']) except (NotFound, NotAuthorized): target_pkg = None - except (CKANAPIError, urllib2.URLError), e: + except (CKANAPIError, urllib2.URLError) as e: retries -= 1 if retries > 0: time.sleep(1) @@ -517,7 +517,7 @@ def pull_docs(conf_file, local_dir): src = RemoteStorage(src_user, src_key, src_container) all_docs = src.new_docs() - print 'total source files ', len(all_docs) + print('total source files ', len(all_docs)) xmls = [x for x in all_docs if x[-4:]=='.xml' and x[:-4] in all_docs and x[:-4] + '.ind' in all_docs] docs = [x[:-4] for x in xmls] @@ -652,7 +652,7 @@ def duplicate_docs(file_dir, site_url): count += 1 except (NotFound, NotAuthorized): target_pkg = None - except (CKANAPIError, urllib2.URLError), e: + except (CKANAPIError, urllib2.URLError) as e: sys.stdout.write( json.dumps([ rec['id'], @@ -696,6 +696,8 @@ def de_dup2(site_url): print(vl) def main(): + sys.exit("This script has been deprecated. Use ckanapi load instead.") + global audience, canada_resource_type,canada_subject global canada_resource_language, organizations global canada_resource_format diff --git a/bin/link_check.py b/bin/link_check.py index deca0c04a..8f762f9db 100755 --- a/bin/link_check.py +++ b/bin/link_check.py @@ -210,7 +210,7 @@ def get_resources(self): urls = {} if new_url: self.test_links(new_url, urls) - print ('total record count: ', count) + print('total record count: ', count) def dumpBrokenLink(self, csvfile): outf=open(csvfile, 'wb') diff --git a/bin/migrate/migrate_cansim_export.py b/bin/migrate/migrate_cansim_export.py index 69c1e598e..c7c7d551c 100755 --- a/bin/migrate/migrate_cansim_export.py +++ b/bin/migrate/migrate_cansim_export.py @@ -66,7 +66,7 @@ def main(): if rec["subject"] in subject_replacements: rec["subject"] = subject_replacements[rec["subject"]] else: - print >> sys.stderr, 'Invalid subject "{0}" for {1}'.format(rec["subject"], rec["id"]) + print('Invalid subject "{0}" for {1}'.format(rec["subject"], rec["id"]), file=sys.stderr) continue rec['author_email'] = 'statcan.infostats-infostats.statcan@canada.ca' rec['maintainer_email'] = 'statcan.infostats-infostats.statcan@canada.ca' @@ -122,7 +122,7 @@ def main(): print(simplejson.dumps(rec)) except IOError: - print >> sys.stderr, 'Error while reading line.' + print('Error while reading line.', file=sys.stderr) except KeyError: if 'warehouse' in sys.argv: diff --git a/ckanext/canada/activity.py b/ckanext/canada/activity.py deleted file mode 100644 index 0d68d3042..000000000 --- a/ckanext/canada/activity.py +++ /dev/null @@ -1,43 +0,0 @@ -import ckan.logic as logic -import ckan.lib.dictization.model_dictize as model_dictize -from ckan.plugins.toolkit import side_effect_free - - -@logic.validate(logic.schema.default_dashboard_activity_list_schema) -@side_effect_free -def recently_changed_packages_activity_list(context, data_dict): - '''Copied from ckan/ckan/logic/action/get.py - - (canada fork only): Sets `include_data` to True - and uses `side_effect_free` - - TODO: Remove this action override in CKAN 2.10 upgrade - - Return the activity stream of all recently added or changed packages. - - :param offset: where to start getting activity items from - (optional, default: ``0``) - :type offset: int - :param limit: the maximum number of activities to return - (optional, default: ``31`` unless set in site's configuration - ``ckan.activity_list_limit``, upper limit: ``100`` unless set in - site's configuration ``ckan.activity_list_limit_max``) - :type limit: int - - :rtype: list of dictionaries - - ''' - # FIXME: Filter out activities whose subject or object the user is not - # authorized to read. - model = context['model'] - offset = data_dict.get('offset', 0) - data_dict['include_data'] = True - limit = data_dict['limit'] # defaulted, limited & made an int by schema - - activity_objects = \ - model.activity.recently_changed_packages_activity_list( - limit=limit, offset=offset) - - return model_dictize.activity_list_dictize( - activity_objects, context, - include_data=data_dict['include_data']) diff --git a/ckanext/canada/assets/datatables/canada_datatables.css b/ckanext/canada/assets/datatables/canada_datatables.css index a3655f67a..9196a5cae 100644 --- a/ckanext/canada/assets/datatables/canada_datatables.css +++ b/ckanext/canada/assets/datatables/canada_datatables.css @@ -63,7 +63,7 @@ div.canada-disabled-view-alert{ min-width: 50%; width: 50%; margin-bottom: 5px; - padding-left: 16px; + padding-left: 24px; padding-right: 10px; position: relative; } @@ -71,8 +71,8 @@ div.canada-disabled-view-alert{ content: '\f096'; font: normal normal normal 14px/1 FontAwesome; position: absolute; - left: 0; - top: 2px; + left: 6px; + top: 6px; } .buttons-collection.buttons-colvis ~ .dt-button-collection.fixed a.buttons-columnVisibility.active::before{ content: '\f046'; diff --git a/ckanext/canada/assets/internal/canada_guess_mimetype.js b/ckanext/canada/assets/internal/canada_guess_mimetype.js index dcce2bbeb..b507e6cea 100644 --- a/ckanext/canada/assets/internal/canada_guess_mimetype.js +++ b/ckanext/canada/assets/internal/canada_guess_mimetype.js @@ -16,6 +16,7 @@ window.addEventListener('load', function(){ .children('#s2id_field-format') .addClass('conrtol-medium') .removeClass('form-control') + .removeClass('form-select') .css({'display': 'block'}); } @@ -33,13 +34,15 @@ window.addEventListener('load', function(){ } function _guess_mimetype(url){ + let tokenFieldName = $('meta[name="csrf_field_name"]').attr('content'); + let tokenValue = $('meta[name="' + tokenFieldName + '"]').attr('content'); + payload = {'url': url}; + payload[tokenFieldName] = tokenValue; $.ajax({ 'url': '/api/action/canada_guess_mimetype', 'type': 'POST', 'dataType': 'JSON', - 'data': { - 'url': url, - }, + 'data': payload, 'complete': function(_data){ if( _data.responseJSON ){ // we have response JSON if( _data.responseJSON.success ){ // successful format guess diff --git a/ckanext/canada/assets/internal/canada_internal.css b/ckanext/canada/assets/internal/canada_internal.css index f033da19c..3e0f349ba 100644 --- a/ckanext/canada/assets/internal/canada_internal.css +++ b/ckanext/canada/assets/internal/canada_internal.css @@ -99,104 +99,6 @@ details.alert-error { div.dt-button-collection {width:50%;} div.dt-button-collection a.dt-button {display: inline-block} -.activity { - margin: 10px 0; - padding: 0; - list-style-type: none; - background: transparent url('../../../base/images/dotted.png') 14px 0 repeat-y -} - -.activity .item { - position: relative; - margin: 0 0 15px 0; - padding: 0; - *zoom: 1; -} - -.activity .item:before, -.activity .item:after { - display: table; - content: ""; - line-height: 0 -} - -.activity .item:after { - clear: both -} - -.activity .item .icon { - display: block; - position: absolute; - top: 0; - left: 0; - width: 30px; - height: 30px; - line-height: 30px; - text-align: center; - color: #ffffff; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - font-weight: normal; - margin-right: 10px; - -webkit-border-radius: 100px; - -moz-border-radius: 100px; - border-radius: 100px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - padding-left: 0px; -} - -.activity .item .gravatar { - -webkit-border-radius: 100px; - -moz-border-radius: 100px; - border-radius: 100px -} - -.activity .item .actor .gravatar { - position: absolute; - top: 0; - left: 40px -} - -.activity .item p { - font-size: 14px; - line-height: 1.5; - margin: 5px 0 0 40px -} - -.activity .item .date { - color: #999; - font-size: 12px; - white-space: nowrap -} - -.activity .item .new { - display: block; - position: absolute; - overflow: hidden; - top: -3px; - left: -3px; - width: 10px; - height: 10px; - background-color: #A35647; - border: 1px solid #FFF; - text-indent: -1000px; - -webkit-border-radius: 100px; - -moz-border-radius: 100px; - border-radius: 100px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) -} - -.activity .item.no-avatar p { - margin-left: 40px -} - -.activity .load-less { - margin-bottom: 15px -} - .popover { width: 300px } @@ -231,114 +133,6 @@ div.dt-button-collection a.dt-button {display: inline-block} margin-bottom: 10px } -.activity .item .icon { - background-color: #999999 -} - -.activity .item.failure .icon { - background-color: #b95252 -} - -.activity .item.success .icon { - background-color: #69a67a -} - -.activity .item.added-tag .icon { - background-color: #6995a6 -} - -.activity .item.changed-group .icon { - background-color: #767dce -} - -.activity .item.changed-package .icon { - background-color: #8c76ce -} - -.activity .item.changed-package_extra .icon { - background-color: #769ace -} - -.activity .item.changed-resource .icon { - background-color: #aa76ce -} - -.activity .item.changed-user .icon { - background-color: #76b8ce -} - -.activity .item.changed-organization .icon { - background-color: #699fa6 -} - -.activity .item.deleted-group .icon { - background-color: #b95252 -} - -.activity .item.deleted-package .icon { - background-color: #b97452 -} - -.activity .item.deleted-package_extra .icon { - background-color: #b95274 -} - -.activity .item.deleted-resource .icon { - background-color: #b99752 -} - -.activity .item.deleted-organization .icon { - background-color: #b95297 -} - -.activity .item.new-group .icon { - background-color: #69a67a -} - -.activity .item.new-package .icon { - background-color: #69a68e -} - -.activity .item.new-package_extra .icon { - background-color: #6ca669 -} - -.activity .item.new-resource .icon { - background-color: #81a669 -} - -.activity .item.new-user .icon { - background-color: #69a6a3 -} - -.activity .item.new-organization .icon { - background-color: #81a669 -} - -.activity .item.removed-tag .icon { - background-color: #b95297 -} - -.activity .item.deleted-related-item .icon { - background-color: #b9b952 -} - -.activity .item.follow-dataset .icon { - background-color: #767dce -} - -.activity .item.follow-user .icon { - background-color: #8c76ce -} - -.activity .item.new-related-item .icon { - background-color: #95a669 -} - -.activity .item.follow-group .icon { - background-color: #8ba669 -} - footer { margin-top: 15px; } @@ -757,3 +551,255 @@ div.canada-datastore-button-fix{ ## DataStore Buttons ## ## END ## #######################*/ + + +/*############################ +## CKAN Base CSS Overrides ## +##############################*/ +body ul.xloader-log li.item{ + position: relative; +} +body ul.xloader-log li.item > i{ + background-color: white !important; + position: absolute; + left: 0; + top: 0; + border-radius: 50%; + outline: 4px solid #999999; + height: 34px !important; + width: 34px !important; + padding: 0; + margin: 0; + line-height: 1 !important; + text-align: initial !important; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); +} +body ul.xloader-log li.item > i::before{ + width: 16px; + height: 16px; + font-size: 16px; + line-height: 1; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + background-color: transparent !important; + color: white !important; + z-index: 2; +} +body ul.xloader-log li.item > i::after{ + content: ''; + background-color: #999999 !important; + border-radius: 50%; + width: 26px; + height: 26px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + z-index: 1; +} +body ul.xloader-log li.item.success > i{ + outline-color: #69A67A !important; +} +body ul.xloader-log li.item.success > i::after{ + background-color: #69A67A !important; +} +body ul.xloader-log li.item.failure > i{ + outline-color: #B95252 !important; +} +body ul.xloader-log li.item.failure > i::after{ + background-color: #B95252 !important; +} +#s2id_field-department, +#s2id_field-organizations{ + min-height: 37px !important; +} +#s2id_field-department.select2-container, +#s2id_field-organizations.select2-container{ + vertical-align: initial !important; + width: 100% !important; +} +#s2id_field-department.select2-container, +#s2id_field-department.select2-container .select2-choice, +#s2id_field-department.select2-container .select2-chosen, +#s2id_field-organizations.select2-container, +#s2id_field-organizations.select2-container .select2-choice, +#s2id_field-organizations.select2-container .select2-chosen{ + height: 100% !important; +} +#s2id_field-department.select2-container .select2-choice, +#s2id_field-organizations.select2-container .select2-choice{ + font-size: 16px !important; + line-height: 1.4375 !important; + padding: 6px 12px !important; +} +#s2id_field-department.select2-container .select2-arrow b, +#s2id_field-organizations.select2-container .select2-arrow b{ + background-position-y: -100%; +} +.s2id_field-organizations_wrapper{ + margin-bottom: 0 !important; +} +.s2id_field-organizations_wrapper .error-block{ + margin-top: -8px; + padding-top: 8px !important; +} +/*########################### +## END ## +## CKAN Base CSS Overrides## +## END ## +#############################*/ + + +/*#################################### +## Recombinaant Base CSS Overrides ## +######################################*/ +@keyframes fade-opacity-in{ + from{ + opacity: 0; + pointer-events: none; + } + to{ + opacity: 1; + pointer-events: all; + } +} +.canada-pd-org-select-wrapper > .module-content.canada-no-marg{ + margin-top: 0 !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-container{ + display: flex !important; + width: 100% !important; + flex-wrap: nowrap !important; + flex-direction: row; + min-height: 38px; + max-height: 38px; + height: 38px; +} +.canada-pd-org-select-wrapper .recombinant-org-select-label-wrapper{ + display: block; + flex: 0; + padding-left: 15px !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-label-wrapper label{ + font-weight: bold !important; + font-size: 16px !important; + line-height: 1.4375 !important; + border-radius: 0 !important; + border: none !important; + margin: 0 !important; + transition-duration: 0.325s !important; + color: #295376 !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper{ + display: flex; + flex: 1; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; + opacity: 0; + pointer-events: none; + animation: fade-opacity-in 0.5s ease-in 1s 1 normal forwards; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container, +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .recombinant-org-select1-wrapper select{ + vertical-align: initial !important; + flex: 1; + width: auto !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container, +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-choice, +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-chosen, +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .recombinant-org-select1-wrapper select{ + height: 100% !important; + border-radius: 0 !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-choice, +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .recombinant-org-select1-wrapper select{ + background: #335075 !important; + border-color: #335075 !important; + box-shadow: none !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-chosen{ + vertical-align: middle; + display: inline-block; + width: 95%; + height: initial !important; + overflow: visible !important; + font-weight: bold !important; + font-size: 16px !important; + line-height: 1.4375 !important; + border-radius: 0 !important; + border: none !important; + margin: 0 !important; + margin-top: 4px !important; + transition-duration: 0.325s !important; + color: white !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .recombinant-org-select1-wrapper{ + width: 100% !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .recombinant-org-select1-wrapper select{ + color: white !important; + width: 100% !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-arrow{ + border-radius: 0 !important; + background: #335075 !important; + border-color: #335075 !important; +} +.canada-pd-org-select-wrapper .recombinant-org-select-wrapper .select2-container .select2-arrow b{ + background-position-y: -100%; + color: white !important; + border-color: white !important; + background-image: url("/data/static/img/select2x2_white.png"), url("/static/img/select2x2_white.png") !important; +} +.recombinant-action-panels-container .tabpanels > details{ + padding: 0 20px 20px 20px !important; +} +.canada-wet-datatable-btn-primary{ + color: white !important; + background: #26374a !important; + border-color: #1d2a39 !important; + transition-duration: 0.325s !important; +} +.canada-wet-datatable-btn-primary.disabled{ + color: white !important; + background: #adc0d5 !important; + border-color: #9cb3cd !important; +} +.canada-wet-datatable-btn-primary:not(.disabled):hover, +.canada-wet-datatable-btn-primary:not(.disabled):active, +.canada-wet-datatable-btn-primary:not(.disabled):focus{ + background: #1c578a !important; + border-color: #091c2d !important; +} +.canada-wet-datatable-btn-danger{ + color: white !important; + background: #bc3331 !important; + border-color: #6b1d1c !important; + transition-duration: 0.325s !important; +} +.canada-wet-datatable-btn-danger.disabled{ + color: white !important; + background: #ebb3b2 !important; + border-color: #e6a1a0 !important; +} +.canada-wet-datatable-btn-danger:not(.disabled):hover, +.canada-wet-datatable-btn-danger:not(.disabled):active, +.canada-wet-datatable-btn-danger:not(.disabled):focus{ + background: #942826 !important; + border-color: #3b100f !important; +} +/*################################### +## END ## +## Recombinaant Base CSS Overrides## +## END ## +#####################################*/ diff --git a/ckanext/canada/assets/internal/validation_spec.js b/ckanext/canada/assets/internal/validation_spec.js deleted file mode 100644 index 42e4d4895..000000000 --- a/ckanext/canada/assets/internal/validation_spec.js +++ /dev/null @@ -1,27 +0,0 @@ -this.ckan.module('canada-validation-spec', function($){ - return { - initialize: function (){ - if( typeof goodtablesUI !== 'undefined' ){ - // modifies the goodtablesUI.spec to add custom descriptions and context - goodtablesUI.spec['errors']['datastore-invalid-header'] = { - "name": this._("Invalid Header for DataStore"), - "message": this._("Column name {value} in column {column_number} is not valid for a DataStore header"), - "description": this._("Column name is invalid for a DataStore header.\n\n How it could be resolved:\n - Remove any leading underscores('_') from the column name.\n - Remove any leading or trailing white space from the column name.\n - Remove any double quotes('\"') from the column name.\n - Make sure the column name is not blank."), - "type": "custom", - "context": "head", - "weight": 7 - }; - goodtablesUI.spec['errors']['datastore-header-too-long'] = { - "name": this._("Header Too Long for DataStore"), - "message": this._("Column name {value} in column {column_number} is too long for a DataStore header"), - "description": this._("Column name is too long for a DataStore header.\n\n How it could be resolved:\n - Make the column name at most 63 characters long."), - "type": "custom", - "context": "head", - "weight": 7 - }; - //TODO: improve description for encoding errors and how to fix them. - //goodtablesUI.spec['errors']['encoding-error'].description = ""; - } - } - }; -}); diff --git a/ckanext/canada/assets/internal/webassets.yml b/ckanext/canada/assets/internal/webassets.yml index 5d518387c..a927c7947 100644 --- a/ckanext/canada/assets/internal/webassets.yml +++ b/ckanext/canada/assets/internal/webassets.yml @@ -38,14 +38,6 @@ guess_mimetype: - canada_guess_mimetype.js output: canada_guess_mimetype/%(version)s_canada_guess_mimetype.js -validation_spec: - extra: - preload: - - base/main - contents: - - validation_spec.js - output: validation_spec/%(version)s_validation_spec.js - user_lock: contents: - canada_internal_users.js diff --git a/ckanext/canada/assets/public/canada_public.css b/ckanext/canada/assets/public/canada_public.css index 17a60f9bb..08cef03c4 100644 --- a/ckanext/canada/assets/public/canada_public.css +++ b/ckanext/canada/assets/public/canada_public.css @@ -251,18 +251,112 @@ a#edit-comment-body-0-format-help-about, button#edit-submit,button#edit-actions- /*################### ## Activity Stream ## #####################*/ -.activity .item { +.activity { + margin: 10px 0; + padding: 0; + list-style-type: none; + background-image: url('/data/dotted.png'), url('/dotted.png'); + background-repeat: repeat-y; + background-position: 17px 0; +} +.activity table{ + max-width: 100% !important; + overflow-x: scroll !important; + display: block !important; +} +.activity .item{ position: relative; margin: 0 0 15px 0; + padding: 0 0 15px 56px !important; + font-size: 14px; + line-height: 1.5; +} +.activity .item::after, +.activity .item::before{ + display: table; + content: ""; + line-height: 0; + clear: both; +} +.activity .item:not(:last-of-type)::after{ + content: ""; + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + height: 2px; + width: 90%; + border-radius: 25px; + background: #f6f6f6; +} +.activity .item .fa-stack{ padding: 0; + margin: 0; + width: 36px; + height: 36px; + position: absolute; + left: 0; + top: 0; } -.activity .item .icon { - padding-left:0; +.activity .item .fa-stack i{ + width: 100%; + height: 100%; + position: absolute !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -50%) !important; + margin: 0 !important; + line-height: 1 !important; + text-align: initial !important; +} +.activity .item .fa-stack i::before{ + position: absolute !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -50%) !important; + font-size: 14px; +} +.activity .item .gravatar { + display: none !important; +} +.activity .item .actor { + display: none !important; +} +.activity .item .date { + color: #999; + font-size: 12px; + white-space: nowrap +} +.activity .item .fa-stack i.icon{ + border: 4px solid white; + display: block; + position: absolute; + top: 0; + left: 0; + width: 30px; + height: 30px; + line-height: 30px; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + font-weight: normal; + margin-right: 10px; + -webkit-border-radius: 100px; + -moz-border-radius: 100px; + border-radius: 100px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + padding-left: 0px; +} +.activity .item .fa-stack i.icon::before{ + width: 40px; + height: 40px; + font-size: 40px; } .activity .item p { font-size: 14px; line-height: 1.5; - margin: 5px 0 0 40px; + margin: 0 0 10px 0; } .activity .item table{ font-size: 14px; @@ -271,6 +365,139 @@ a#edit-comment-body-0-format-help-about, button#edit-submit,button#edit-actions- } .activity .item table p{ margin: 0; + margin-top: 10px; +} +.activity .item h2{ + margin-top: 0 !important; +} +.activity .item > div{ + margin: 0 !important; +} +.activity .item .new { + display: block; + position: absolute; + overflow: hidden; + top: -3px; + left: -3px; + width: 10px; + height: 10px; + background-color: #A35647; + border: 1px solid #FFF; + text-indent: -1000px; + -webkit-border-radius: 100px; + -moz-border-radius: 100px; + border-radius: 100px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) +} +.activity .item.no-avatar p { + margin-left: 0; +} +.activity .load-less { + margin-bottom: 15px; +} +.activity .item .icon { + background-color: #999999 +} +.activity .item.failure .icon { + background-color: #b95252 +} +.activity .item.success .icon { + background-color: #69a67a +} +.activity .item.added-tag .icon { + background-color: #6995a6 +} +.activity .item.changed-group .icon { + background-color: #767dce +} +.activity .item.changed-package .icon { + background-color: #8c76ce +} +.activity .item.changed-package_extra .icon { + background-color: #769ace +} +.activity .item.changed-resource .icon { + background-color: #aa76ce +} +.activity .item.changed-user .icon { + background-color: #76b8ce +} +.activity .item.changed-organization .icon { + background-color: #699fa6 +} +.activity .item.changed-resource-view .icon { + background-color: #9c89d5 +} +.activity .item.deleted-group .icon { + background-color: #b95252 +} +.activity .item.deleted-package .icon { + background-color: #b97452 +} +.activity .item.deleted-package_extra .icon { + background-color: #b95274 +} +.activity .item.deleted-resource .icon { + background-color: #b99752 +} +.activity .item.deleted-organization .icon { + background-color: #b95297 +} +.activity .item.deleted-resource-view .icon { + background-color: #c06483 +} +.activity .item.new-group .icon { + background-color: #69a67a +} +.activity .item.new-package .icon { + background-color: #69a68e +} +.activity .item.new-package_extra .icon { + background-color: #6ca669 +} +.activity .item.new-resource .icon { + background-color: #81a669 +} +.activity .item.new-user .icon { + background-color: #69a6a3 +} +.activity .item.new-organization .icon { + background-color: #81a669 +} +.activity .item.new-resource-view .icon { + background-color: #7caf79 +} +.activity .item.removed-tag .icon { + background-color: #b95297 +} +.activity .item.deleted-related-item .icon { + background-color: #b9b952 +} +.activity .item.follow-dataset .icon { + background-color: #767dce +} +.activity .item.follow-user .icon { + background-color: #8c76ce +} +.activity .item.new-related-item .icon { + background-color: #95a669 +} +.activity .item.follow-group .icon { + background-color: #8ba669 +} +.activity .item.created-datastore .icon{ + color: #749a5b; + background-color: #749a5b; +} +.activity .item.changed-datastore .icon{ + color: #5b939a; + background-color: #5b939a; +} +.activity .item.deleted-datastore .icon{ + color: #ac468a; + background-color: #ac468a; } /*################### ## END ## @@ -358,6 +585,18 @@ a#edit-comment-body-0-format-help-about, button#edit-submit,button#edit-actions- } +.modal .modal-dialog .modal-content .modal-header > h1, +.modal .modal-dialog .modal-content .modal-header > h2, +.modal .modal-dialog .modal-content .modal-header > h3, +.modal .modal-dialog .modal-content .modal-header > h4, +.modal .modal-dialog .modal-content .modal-header > h5, +.modal .modal-dialog .modal-content .modal-header > h6{ + + color: white; + margin: 0; + +} + body #resource-schema-buttons div.form-group > a.btn:nth-of-type(2){ display: none !important; @@ -446,6 +685,15 @@ form#user-edit-form > fieldset:first-of-type{ ## Resource Item ## ###################*/ +.canada-edit-resource-panel{ + margin: -15px -15px 8px -15px !important; +} + +.canada-edit-resource-info div.nums{ + margin: 0 !important; + padding: 0 !important; +} + /* Dataset Index */ ul.resource-list > li.resource-item{ display: flex; @@ -521,7 +769,7 @@ ul.resource-list > li.resource-item > div.canada-resource-list-badges{ } .resources-side-panel .nav-item > a{ padding-left: 15px; - padding-right: 65px; + padding-right: 35px; margin-left: 0 !important; margin-right: 0 !important; position: relative; @@ -540,7 +788,6 @@ ul.resource-list > li.resource-item > div.canada-resource-list-badges{ } } .resources-side-panel .nav-item.active a{ - pointer-events: none !important; cursor: default !important; color: #295376 !important; } @@ -553,14 +800,19 @@ ul.resource-list > li.resource-item > div.canada-resource-list-badges{ .resources-side-panel .nav-item .dropdown.position-absolute{ position: absolute !important; right: 0 !important; - top: 50% !important; - transform: translateY(-50%) !important; + top: 0 !important; + bottom: 0 !important; margin-right: 0 !important; } .resources-side-panel .nav-item .dropdown.position-absolute > .btn-light{ - background-color: #eaebed !important; + background-color: #eeeeee !important; border-color: #dcdee1 !important; color: #335075 !important; + border-radius: 0 !important; + box-shadow: none !important; + border: none !important; + height: 100%; + width: 46px !important; } .resources-side-panel .nav-item .dropdown.position-absolute > .btn-light:hover, .resources-side-panel .nav-item .dropdown.position-absolute > .btn-light:active, @@ -568,6 +820,9 @@ ul.resource-list > li.resource-item > div.canada-resource-list-badges{ background-color: #cfd1d5 !important; border-color: #bbbfc5 !important; } +.resources-side-panel .nav-item .dropdown.position-absolute > .btn-light:focus{ + outline: auto !important; +} .resources-side-panel .nav-item .dropdown.position-absolute.open{ z-index: 100 !important; } @@ -591,8 +846,92 @@ ul.resource-list > li.resource-item > div.canada-resource-list-badges{ background-color: #cfd1d5 !important; border-color: #bbbfc5 !important; } +.resources-side-section .panel-body.resources-side-panel{ + padding: 0 !important; +} +.resources-side-section .panel-body > ul > li{ + position: relative !important; + min-height: 80px; + padding: 0 !important; + width: 100%; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: end; + background: transparent !important; +} +.resources-side-section .panel-body > ul > li:last-of-type, +.resources-side-section .panel-body > ul > li:last-of-type a{ + border-bottom-left-radius: 3px !important; + border-bottom-right-radius: 3px !important; +} +.resources-side-section .panel-body > ul > li:last-of-type .dropdown.position-absolute > .btn-light{ + border-bottom-right-radius: 3px !important; +} +.resources-side-section .panel-body > ul > li:not(:first-of-type){ + border-top: 1px dotted #6f6f6f !important; +} +.resources-side-section .panel-body > ul{ + min-height: 80px; +} +.resources-side-section .resources-side-section-item-link{ + position: absolute !important; + display: block !important; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: calc(100% - 46px) !important; + height: 100%; + transition-duration: 0.325s !important; + text-decoration: none !important; + color: #284162 !important; +} +.resources-side-section .resources-side-section-item-link:hover, +.resources-side-section .resources-side-section-item-link:active, +.resources-side-section .resources-side-section-item-link:focus{ + text-decoration: none !important; + color: #284162 !important; +} +.resources-side-section .resources-side-section-item-title-container{ + position: relative; + overflow: clip; +} +.resources-side-section .resources-side-section-item-badges{ + margin-left: 15px; + margin-bottom: 15px; + margin-top: 52px; + margin-right: 50px; + z-index: 2; + pointer-events: none; +} +@media all and (max-width: 992px){ + .resources-side-section .resources-side-section-item-badges{ + margin-top: 60px; + } +} +@media all and (max-width: 768px){ + .resources-side-section .resources-side-section-item-badges{ + margin-top: 52px; + } +} +.resources-side-section .resources-side-section-item-badges .badge{ + margin-bottom: 3px; +} +.resources-side-section .nav-item.active div.dropdown{ + display: none !important; +} +.resources-side-panel.resources-side-panel-no-edit .nav-item > a, +.resources-side-panel .nav-item.active > a{ + padding-right: 15px !important; + width: 100% !important; +} /* END - Side Panel - END */ +.canada-reorder-resources-wrapper .resource-list{ + margin: 0 0 10px 0 !important; +} + /* Resource Action Buttons */ .module-resource .actions { top: unset; @@ -722,19 +1061,6 @@ body i.fa.fa-arrow-left::before{ ## END ## ####################################*/ - -/*################################## -## Resource Actions Toolbar Area ## -###################################*/ -.resource-actions-toolbar ul.gap-1 > li{ - margin-right: 5px !important; -} -/*################################## -## END ## -## Resource Actions Toolbar Area ## -## END ## -####################################*/ - /*################### ## Flash Messages ## #####################*/ @@ -742,9 +1068,27 @@ body i.fa.fa-arrow-left::before{ z-index: 2; } .canada-flash-messages .alert{ - padding-right: 15px; + padding-right: 28px; position: relative; } +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +@keyframes flash-fade-in-alert{ + 0% { + opacity: 0; + } + 33% { + opacity: 0.25; + } + 67% { + opacity: 0.75; + } + 100% { + opacity: 1; + } +} +.canada-flash-messages .alert.fade.show{ + animation: flash-fade-in-alert 1.325s ease-in 0.325s forwards !important; +} @keyframes flash-fade-in-close-button{ 0% { visibility: hidden; @@ -759,7 +1103,7 @@ body i.fa.fa-arrow-left::before{ opacity: 0.625; } } -.canada-flash-messages .flash-messages a.close{ +.canada-flash-messages .flash-messages button.close{ display: block; position: absolute; top: 5px; @@ -767,11 +1111,18 @@ body i.fa.fa-arrow-left::before{ padding-bottom: 0; visibility: hidden; opacity: 0; - animation: flash-fade-in-close-button 2s ease-in 1s forwards; + animation: flash-fade-in-close-button 2s ease-in 1s forwards !important; + padding: 0 !important; +} +.canada-flash-messages .flash-messages button.close::after{ + content: '\f00d'; + font-family: 'FontAwesome'; + font-size: 18px; + vertical-align: text-top; } -.canada-flash-messages .flash-messages a.close:hover, -.canada-flash-messages .flash-messages a.close:active, -.canada-flash-messages .flash-messages a.close:focus{ +.canada-flash-messages .flash-messages button.close:hover, +.canada-flash-messages .flash-messages button.close:active, +.canada-flash-messages .flash-messages button.close:focus{ color: #335075; } body .alert a.btn-default{ @@ -784,6 +1135,10 @@ body .alert a.btn-danger{ body .alert a.btn-warning{ color: black !important; } +.canada-flash-messages .flash-messages .alert:not(.alert-dismissible) button.close{ + display: none !important; + pointer-events: none !important; +} /*################### ## END ## ## Flash Messages ## @@ -813,6 +1168,42 @@ body .alert a.btn-warning{ max-height: 100%; height: 100%; } +.canada-search-filters-title{ + margin-bottom: 10px; +} +.canada-search-filters-title h2{ + margin-top: 0 !important; +} +.canada-search-filters-title a{ + text-decoration: none !important; +} +.canada-search-field-wrapper{ + width: 100% !important; + display: flex !important; + flex-direction: row; + flex-wrap: nowrap; +} +.canada-search-field-wrapper input#search_field{ + flex: 1; +} +.canada-search-field-wrapper span.input-group-btn{ + width: 40px; + max-width: 40px; + min-width: 40px; +} +.canada-search-form-options-wrapper{ + width: 100% !important; + display: flex !important; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; +} +.canada-search-form-options-wrapper select{ + display: inline-block !important; +} +.canada-org-result-text{ + font-size: 16px !important; +} /*####################### ## END ## ## Header Search Form ## @@ -866,7 +1257,6 @@ div.canada-job-list-title small{ border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; } - .canada-dashboard-panel{ border-top-left-radius: 0 !important; } @@ -892,6 +1282,399 @@ body, body .module-grid, body .media-grid, body .main, body .account-masthead, b ## END ## ################################*/ +/*############################ +## CKAN Base CSS Overrides ## +##############################*/ +body .text-info{ + color: #31708f !important; +} +body .bg-info{ + background-color: #d9edf7 !important; +} +body .text-warning{ + color: #8a6d3b !important; +} +body .bg-warning{ + background-color: #fcf8e3 !important; +} +body .text-danger{ + color: #a94442 !important; +} +body .bg-danger{ + background-color: #f2dede !important; +} +body .error-block, +body .error-inline{ + font-size: 12px !important; + line-height: 23px !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .btn.btn-light{ + color: #335075 !important; + background-color: #eaebed !important; + border-color: #dcdee1 !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +a[class="btn"], +button[class="btn"]{ + color: #335075; + background-color: #eaebed; + border-color: #dcdee1; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +a[class="btn"]:hover, +a[class="btn"]:active, +a[class="btn"]:focus, +button[class="btn"]:hover, +button[class="btn"]:active, +button[class="btn"]:focus{ + background-color: #cfd1d5; + border-color: #bbbfc5; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .btn.btn-light:active, +body .btn.btn-light:focus, +body .btn.btn-light:hover{ + background-color: #cfd1d5 !important; + border-color: #bbbfc5 !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .module-heading{ + padding: 10px 25px !important; + font-size: 14px !important; + line-height: 1.3 !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .module-narrow .module-heading{ + padding-left: 15px !important; + padding-right: 15px !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .accordion-button{ + font-size: 16px !important; + line-height: 1.3 !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .accordion-header{ + margin: 0 !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .accordion{ + margin-bottom: 15px !important; +} +body .resource-upload-field i.fa{ + margin-right: 4px !important; +} +body form#form-purge-all a.purge-all{ + margin-bottom: 15px !important; +} +body .canada-admin-trash #accordion-group{ + display: none !important; +} +@keyframes modal-fade-in{ + 0% { + opacity: 0; + } + 33% { + opacity: 0.25; + } + 67% { + opacity: 0.75; + } + 100% { + opacity: 1; + } +} +@keyframes modal-fade-out{ + 0% { + opacity: 1; + } + 33% { + opacity: 0.75; + } + 67% { + opacity: 0.25; + } + 100% { + opacity: 0; + } +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .modal.fade, +body .popover.fade{ + animation: modal-fade-out 0.325s ease-in 0s forwards !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .modal.fade.show, +body .popover.fade.show{ + animation: modal-fade-in 0.325s ease-in 0s forwards !important; +} +body .popover .popover-header{ + margin: 0 !important; + font-size: 16px !important; + padding: 8px 14px !important; +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +@media all and (max-width: 768px){ + body div#wb-bnr > div.row{ + flex-direction: row-reverse; + } +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .form-select{ + appearance: auto !important; + -webkit-appearance: auto !important; + -moz-appearance: auto !important; +} +body #timeout, +body .modal{ + background: rgba(0, 0, 0, 0.15) !important; +} +body #timeout > .modal-dialog{ + position: absolute !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -25%) !important; +} +@media all and (max-width: 768px){ + body #timeout > .modal-dialog{ + top: 35% !important; + max-width: 80% !important; + min-width: 80% !important; + width: 80% !important; + } +} +/* BS4+ Fix. TODO: remove after upgrade to BS4+ */ +body .modal .modal-dialog .modal-content button.btn-close{ + background: transparent url("data:image/svg+xml,") center/1em auto no-repeat; +} +body .panel-title > .label.label-info, +body h1 > .label.label-info{ + display: inline-block; + vertical-align: bottom; +} +body .clear-fix{ + clear: both !important; +} +body .canada-flex{ + display: flex; + flex-direction: row; + flex-wrap: nowrap; + width: 100%; +} +@media all and (max-width: 768px){ + body .canada-flex{ + flex-wrap: wrap; + } +} +body .accordion-heading{ + margin: 0 !important; +} +body .accordion-button{ + padding-right: 25px !important; +} +body .accordion-button.no-after{ + background-color: #f5f5f5 !important; + color: #333333 !important; +} +body .accordion-button.no-after::after{ + background-image: none !important; +} +form[action*="/dictionary/"] h3:first-of-type{ + margin-top: 0 !important; +} +div.btn-group:not(.dropdown){ + display: flex; + flex-direction: row; + flex-wrap: nowrap; +} +footer#wb-info{ + margin-top: 36px !important; +} +.canada-resource-dropdown-explore a{ + text-decoration: none !important; +} +/*########################### +## END ## +## CKAN Base CSS Overrides## +## END ## +#############################*/ + +/*######################## +## Page Action Toolbar ## +##########################*/ +.canada-action-toolbar{ + margin-top: 0; + min-height: auto !important; + width: 100% !important; +} + +.canada-action-toolbar header{ + margin-top: 15px; + margin-bottom: 0 !important; + width: 100% !important; + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + justify-content: space-between; + border-radius: 0 !important; + background: #E1E4E7 !important; + border-bottom: 1px solid #D3D4D8; + border-top: 1px solid #D3D4D8; +} + +@media all and (max-width: 992px){ + .canada-action-toolbar header{ + flex-wrap: wrap; + } +} + +.canada-action-toolbar header .nav a{ + font-weight: bold !important; + font-size: 16px !important; + line-height: 1.4375 !important; + border-radius: 0 !important; + border: none !important; + margin: 0 !important; + transition-duration: 0.325s !important; +} + +.canada-action-toolbar header .nav li:not(.active) a:hover, +.canada-action-toolbar header .nav li:not(.active) a:active, +.canada-action-toolbar header .nav li:not(.active) a:focus{ + background: #EEEFF1 !important; +} + +.canada-action-toolbar header .nav li.active a{ + background-color: #335075 !important; + color: white !important; + pointer-events: none !important; +} + +.canada-action-toolbar header .content_action a{ + font-weight: bold !important; + font-size: 16px !important; + line-height: 1.4375 !important; + border-radius: 0 !important; + border: none !important; + background: #f6f6f6 !important; + transition-duration: 0.325s !important; +} + +.canada-action-toolbar header .content_action a:not(:last-of-type){ + margin-right: 5px !important; +} + +.canada-action-toolbar header .content_action a:hover, +.canada-action-toolbar header .content_action a:active, +.canada-action-toolbar header .content_action a:focus{ + background: #335075 !important; + color: white !important; +} + +.canada-action-toolbar header::after{ + content: none !important; +} + +.canada-action-toolbar header > *{ + position: relative !important; + display: block !important; + float: none !important; + margin: 0 !important; +} + +.module-resource .module-content > .actions{ + float: none !important; + margin-top: 0 !important; + min-height: auto !important; + width: 100% !important; + display: block !important; +} + +.resource-actions-toolbar{ + float: none !important; + margin-top: 15px !important; + min-height: auto !important; + width: 100% !important; + display: block !important; + background: #E1E4E7 !important; + border-bottom: 1px solid #D3D4D8; + border-top: 1px solid #D3D4D8; + border-radius: 0 !important; + margin-bottom: 15px !important; +} + +.resource-actions-toolbar.resource-actions-toolbar-portal{ + background: transparent !important; + border-top-color: transparent !important; + border-bottom-color: transparent !important; +} + +.resource-actions-toolbar > ul{ + width: 100% !important; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + padding: 0 !important; + margin: 0 !important; +} + +@media all and (max-width: 992px){ + .resource-actions-toolbar > ul{ + flex-wrap: wrap; + } +} + +.resource-actions-toolbar >ul >li{ + margin: 0 !important; +} + +.resource-actions-toolbar >ul a.btn-default{ + font-weight: bold !important; + font-size: 16px !important; + line-height: 1.4375 !important; + border-radius: 0 !important; + border: none !important; + background: #E1E4E7 !important; + transition-duration: 0.325s !important; + min-height: auto !important; + box-shadow: none !important; +} + +.resource-actions-toolbar >ul a.btn-default:hover, +.resource-actions-toolbar >ul a.btn-default:active, +.resource-actions-toolbar >ul a.btn-default:focus{ + background: #EEEFF1 !important; +} + +.resource-actions-toolbar >ul a.btn-default:focus{ + outline: auto !important; +} + +.resource-actions-toolbar .resource-actions-toolbar-spacer{ + flex: 1; +} + +.resource-actions-toolbar .resource-actions-toolbar-spacer ~ li a{ + border-radius: 0 !important; + border: none !important; +} + +.resource-actions-toolbar .resource-actions-toolbar-spacer ~ li button.dropdown-toggle{ + border-radius: 0 !important; + border: none !important; +} + +.resource-actions-toolbar .resource-actions-toolbar-spacer ~ li:not(:last-of-type){ + margin-right: 5px !important; +} +/*######################## +## END ## +## Page Action Toolbar ## +## END ## +##########################*/ + + /*############################## ## CDTS Application Template ## ################################*/ diff --git a/ckanext/canada/assets/public/csrf.js b/ckanext/canada/assets/public/csrf.js deleted file mode 100644 index 385a6e209..000000000 --- a/ckanext/canada/assets/public/csrf.js +++ /dev/null @@ -1,41 +0,0 @@ -window.addEventListener('load', function(){ - - $(document).ready(function(){ - - let confirmActions = $("[data-module='confirm-action']"); - - if( confirmActions.length > 0 ){ - - $(confirmActions).each(function(){ - - let form = $(this).closest('form'); - let href_attr = $(this).attr('href'); - - let hasToken = false; - - if ( - href_attr.length > 0 && - ( - href_attr.includes('?token') || - href_attr.includes('&token') - ) - ){ - - hasToken = true; - - } - - // only use the closest form if it exists - // and if the confirm-action html element - // does not have a token in the href attribute - if ( form.length > 0 && ! hasToken ){ - $(this).attr('data-module-with-data', 'true'); - } - - }); - - } - - }); - -}); diff --git a/ckanext/canada/assets/public/webassets.yml b/ckanext/canada/assets/public/webassets.yml index 7d15e4fda..95bb7b309 100644 --- a/ckanext/canada/assets/public/webassets.yml +++ b/ckanext/canada/assets/public/webassets.yml @@ -13,11 +13,6 @@ check_all: - check_all.js output: canada_public/%(version)s_check_all.js -csrf: - contents: - - csrf.js - output: canada_public/%(version)s_csrf.js - geomap_zoom: contents: - geomapzoom.js diff --git a/ckanext/canada/auth.py b/ckanext/canada/auth.py index 7a598d7f7..8bbb1acd5 100644 --- a/ckanext/canada/auth.py +++ b/ckanext/canada/auth.py @@ -51,3 +51,10 @@ def organization_list(context, data_dict): def organization_show(context, data_dict): return {'success': bool(context.get('user'))} + + +def recently_changed_packages_activity_list(context, data_dict): + """ + Legacy, anyone can view. + """ + return {'success': True} diff --git a/ckanext/canada/checks.py b/ckanext/canada/checks.py index c3e1fa84f..c9e7f87f2 100644 --- a/ckanext/canada/checks.py +++ b/ckanext/canada/checks.py @@ -1,37 +1,57 @@ -from copy import copy -from goodtables import check, Error +import attrs +from frictionless import Check +from frictionless.errors import HeaderError from ckan.plugins.toolkit import _ from ckanext.datastore.helpers import is_valid_field_name -@check('ds-headers', type='custom', context='head') -def ds_headers_check(cells, sample=None): - # type: (list[dict], list[dict]|None) -> list[Error|None] - """ - Checks header values against the DataStore constraints - """ - errors = [] - for cell in copy(cells): - - # Skip if not header - if 'header' not in cell: - continue - - errored = False - - if not is_valid_field_name(cell['value']): - errors.append(Error('datastore-invalid-header', cell, - message=_("Column name {value} in column {column_number} is not valid for a DataStore header"), - message_substitutions={'value': cell['value'],})) - errored = True - if len(cell['value']) > 63: - errors.append(Error('datastore-header-too-long', cell, - message=_("Column name {value} in column {column_number} is too long for a DataStore header"), - message_substitutions={'value': cell['value'],})) - errored = True - - if errored: - cells.remove(cell) - - return errors +class DatastoreInvalidHeader(HeaderError): + type = "datastore-invalid-header" + title = _("Invalid Header for DataStore") + description = _("Column name is invalid for a DataStore header.\n\n How it could be resolved:\n - Remove any leading underscores('_') from the column name.\n - Remove any leading or trailing white space from the column name.\n - Remove any double quotes('\"') from the column name.\n - Make sure the column name is not blank.") + template = _("Column name {value} in column {column_number} is not valid for a DataStore header") + + +class DatastoreTooLongHeader(HeaderError): + type = "datastore-header-too-long" + title = _("Header Too Long for DataStore") + description = _("Column name is too long for a DataStore header.\n\n How it could be resolved:\n - Make the column name at most 63 characters long.") + template = _("Column name {value} in column {column_number} is too long for a DataStore header") + + +@attrs.define(kw_only=True, repr=False) +class DatastoreHeadersCheck(Check): + type = "ds-headers" + Errors = [DatastoreInvalidHeader, DatastoreTooLongHeader] + + # Validate + + def validate_start(self): + index = 0 + for header in self.resource.labels: + if not is_valid_field_name(header): + yield DatastoreInvalidHeader( + note=_("Column name {value} in column {column_number} is not valid for a DataStore header").format(value=header, + column_number=index), + labels=[header], + row_numbers=[index] + ) + + if len(header) > 63: + yield DatastoreTooLongHeader( + note=_("Column name {value} in column {column_number} is too long for a DataStore header").format(value=header, + column_number=index), + labels=[header], + row_numbers=[index] + ) + + + index += 1 + + # Metadata + + metadata_profile_patch = { + "type": "object", + "properties": {}, + } diff --git a/ckanext/canada/cli.py b/ckanext/canada/cli.py index b219e426f..a19c5356e 100644 --- a/ckanext/canada/cli.py +++ b/ckanext/canada/cli.py @@ -19,6 +19,8 @@ from ckan.logic import get_action from ckan import model +from ckan.cli.db import db +from itertools import groupby from ckanapi import ( RemoteCKAN, @@ -1407,7 +1409,13 @@ def set_datastore_false_for_invalid_resources(resource_id=None, delete_table_vie help='Submits the resources to Xloader instead of Validation. Will Xloader even if file hash has not changed.') @click.option('-f', '--failed', is_flag=True, type=click.BOOL, help='Only re-submit resources that failed. Mutually exclusive with --empty-only.') -def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=False, quiet=False, list=False, xloader=False, failed=False): +@click.option('-s', '--sync', is_flag=True, type=click.BOOL, + help='Run validation jobs in sync mode.') +@click.option('-i', '--skip-xloader', is_flag=True, type=click.BOOL, + help='Skip submitting to Xloader after Validation.') +def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=False, quiet=False, + list=False, xloader=False, failed=False, sync=False, + skip_xloader=False): """ Re-submits valid DataStore Resources to Validation OR Xloader (use --xloader). """ @@ -1561,6 +1569,7 @@ def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=Fal status = 1 max = len(resource_ids_to_submit) + async_mode = False if sync else True for id in resource_ids_to_submit: if list: click.echo(id) @@ -1570,8 +1579,11 @@ def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=Fal get_action('xloader_submit')(context, {"resource_id": id, "ignore_hash": True}) msg = "%s/%s -- Submitted Resource %s to Xloader" % (status, max, id) else: - get_action('resource_validation_run')(context, {"resource_id": id, "async": True}) - msg = "%s/%s -- Submitted Resource %s to Validation" % (status, max, id) + get_action('resource_validation_run')(context, {"resource_id": id, "async": async_mode, "skip_xloader": skip_xloader}) + if async_mode: + msg = "%s/%s -- Submitted Resource %s to Validation" % (status, max, id) + else: + msg = "%s/%s -- Ran Resource %s through Validation" % (status, max, id) if verbose: click.echo(msg) except Exception as e: @@ -1579,7 +1591,10 @@ def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=Fal if xloader: errors.write('Failed to submit Resource %s to Xloader with errors:\n\n%s' % (id, e)) else: - errors.write('Failed to submit Resource %s to Validation with errors:\n\n%s' % (id, e)) + if async_mode: + errors.write('Failed to submit Resource %s to Validation with errors:\n\n%s' % (id, e)) + else: + errors.write('Failed to run Resource %s through Validation with errors:\n\n%s' % (id, e)) errors.write('\n') traceback.print_exc(file=errors) pass @@ -1593,7 +1608,10 @@ def resubmit_datastore_resources(resource_id=None, empty_only=False, verbose=Fal if xloader: _success_message('Re-submitted %s Resources to Xloader.' % len(resource_ids_to_submit)) else: - _success_message('Re-submitted %s Resources to Validation.' % len(resource_ids_to_submit)) + if async_mode: + _success_message('Re-submitted %s Resources to Validation.' % len(resource_ids_to_submit)) + else: + _success_message('Ran %s Resources through Validation.' % len(resource_ids_to_submit)) elif not resource_ids_to_submit: _success_message('No valid, empty DataStore Resources to re-submit at this time.') @@ -1757,6 +1775,58 @@ def delete_table_view_from_non_datastore_resources(resource_id=None, verbose=Fal _success_message('No datatables_view(s) at this time.') +@db.command("resolve_duplicate_emails", short_help="Resolve duplicate emails by deactivating all but the first created user.") +@click.option("-q", "--quiet", is_flag=True, help="Suppress human interaction.", default=False) +@click.option("-v", "--verbose", is_flag=True, help="Increase verbosity", default=False) +def resolve_duplicate_emails(quiet=False, verbose=False): + """Resolve duplicate emails by deactivating all but the first created user.""" + + q = model.Session.query(model.User.email, + model.User.name, + model.User.created) \ + .filter(model.User.state == "active") \ + .filter(model.User.email != "") \ + .order_by(model.User.email).all() + + duplicates_found = False + users_to_delete = [] + try: + for k, grp in groupby(q, lambda x: x[0]): + users = [(user[1], user[2]) for user in grp] + _users = sorted(users, key=lambda x: x[1]) + if len(users) > 1: + duplicates_found = True + _users = sorted(users, key=lambda x: x[1]) + if verbose: + click.echo('\n- Going to keep user %s' % _users[0][0]) + for user, created in _users[1:]: + if user not in users_to_delete: + if verbose: + click.echo('- Going to deactivate user %s' % user) + users_to_delete.append(user) + if verbose: + click.echo('\n') + except Exception as e: + _error_message(str(e)) + return + if users_to_delete: + if not quiet: + click.confirm("\nAre you sure you want to deactivate {num} duplicate users?" + .format(num=len(users_to_delete)), abort=True) + for user in users_to_delete: + try: + get_action('user_delete')({'ignore_auth': True}, {'id': user}) + if verbose: + click.echo('- Deactivated user %s' % user) + except Exception as e: + if verbose: + _error_message(str(e)) + + click.echo("\nDeactivated {num} duplicate users".format(num=len(users_to_delete))) + if not duplicates_found: + _success_message('No duplicate emails found') + + @canada.command(short_help="Generates the report for dataset Opennes Ratings.") @click.option('-v', '--verbose', is_flag=True, type=click.BOOL, help='Increase verbosity.') @click.option('-d', '--details', is_flag=True, type=click.BOOL, help='Include more dataset details.') diff --git a/ckanext/canada/helpers.py b/ckanext/canada/helpers.py index 10709dc37..4909a1594 100755 --- a/ckanext/canada/helpers.py +++ b/ckanext/canada/helpers.py @@ -2,15 +2,16 @@ import re import inspect from ckan.plugins.toolkit import config, _, h, g, request -from ckan.model import User, Package, Activity +from ckan.model import User, Package +from ckanext.activity.model import Activity import ckan.model as model import datetime import unicodedata import ckan as ckan -import jinja2 import html from six import text_type from bs4 import BeautifulSoup +from ckan import plugins from ckanapi import NotFound from ckantoolkit import aslist @@ -513,14 +514,14 @@ def recombinant_description_to_markup(text): markup = [] for i, part in enumerate(re.split(url_pattern, h.recombinant_language_text(text))): if i % 2: - markup.append(jinja2.Markup('{1}'.format(part, jinja2.escape(part)))) + markup.append(Markup('{1}'.format(part, escape(part)))) else: - markup.extend(jinja2.Markup('
'.join( - jinja2.escape(t) for t in part.split('\n') + markup.extend(Markup('
'.join( + escape(t) for t in part.split('\n') ))) # extra dict because language text expected and language text helper # will cause plain markup to be escaped - return {'en': jinja2.Markup(''.join(markup))} + return {'en': Markup(''.join(markup))} def mail_to_with_params(email_address, name, subject, body): @@ -591,7 +592,7 @@ def organization_member_count(id): return len(members) -def _build_flash_html_for_ga4(message, category, caller): +def _build_flash_html_for_ga4(message, category, caller, allow_html=True): """ All flash messages will be given an event name and action attribute. @@ -599,7 +600,7 @@ def _build_flash_html_for_ga4(message, category, caller): data-ga-action: CATEGORY in format of notice | error | success """ return '
%s
' \ - % (caller, category, message) + % (caller, category, escape(message) if not allow_html else Markup(message)) def _get_caller_info(stack): @@ -637,10 +638,9 @@ def flash_notice(message, allow_html=True): Adding the view/action caller for GA4 Custom Events """ t.h.flash(_build_flash_html_for_ga4(message, 'notice', - _get_caller_info(inspect.stack())), - category='alert-info', - ignore_duplicate=True, - allow_html=allow_html) + _get_caller_info(inspect.stack()), + allow_html=allow_html), + category='alert-info') def flash_error(message, allow_html=True): @@ -650,10 +650,9 @@ def flash_error(message, allow_html=True): Adding the view/action caller for GA4 Custom Events """ t.h.flash(_build_flash_html_for_ga4(message, 'error', - _get_caller_info(inspect.stack())), - category='alert-danger', - ignore_duplicate=True, - allow_html=allow_html) + _get_caller_info(inspect.stack()), + allow_html=allow_html), + category='alert-danger') def flash_success(message, allow_html=True): @@ -663,10 +662,9 @@ def flash_success(message, allow_html=True): Adding the view/action caller for GA4 Custom Events """ t.h.flash(_build_flash_html_for_ga4(message, 'success', - _get_caller_info(inspect.stack())), - category='alert-success', - ignore_duplicate=True, - allow_html=allow_html) + _get_caller_info(inspect.stack()), + allow_html=allow_html), + category='alert-success') def get_loader_status_badge(resource): @@ -895,6 +893,16 @@ def ckan_to_cdts_breadcrumbs(breadcrumb_content): return cdts_breadcrumbs +def validation_status(resource_id): + try: + validation = t.get_action('resource_validation_show')( + {'ignore_auth': True}, + {'resource_id': resource_id}) + return validation.get('status') + except (t.ObjectNotFound, KeyError): + return 'unknown' + + def is_user_locked(user_name): """ Returns whether the user is locked out of their account or not. @@ -908,3 +916,19 @@ def is_user_locked(user_name): return True return False + + +def available_purge_types(): + """ + Returns a list of available purge types. + """ + types = [] + for plugin in plugins.PluginImplementations(plugins.IDatasetForm): + for package_type in plugin.package_types(): + if package_type not in types: + types.append(package_type) + for plugin in plugins.PluginImplementations(plugins.IGroupForm): + for group_types in plugin.group_types(): + if group_types not in types: + types.append(group_types) + return types diff --git a/ckanext/canada/i18n/ckanext-canada.pot b/ckanext/canada/i18n/ckanext-canada.pot index bc95fef93..003a94666 100644 --- a/ckanext/canada/i18n/ckanext-canada.pot +++ b/ckanext/canada/i18n/ckanext-canada.pot @@ -8,22 +8,49 @@ msgid "" msgstr "" "Project-Id-Version: ckanext-canada 0.4.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-10 13:40+0000\n" +"POT-Creation-Date: 2024-10-29 13:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.7.0\n" +"Generated-By: Babel 2.10.3\n" -#: ckanext/canada/assets/internal/validation_spec.js:8 ckanext/canada/checks.py:25 +#: ckanext/canada/checks.py:11 +msgid "Invalid Header for DataStore" +msgstr "" + +#: ckanext/canada/checks.py:12 +msgid "" +"Column name is invalid for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Remove any leading underscores('_') from the column name.\n" +" - Remove any leading or trailing white space from the column name.\n" +" - Remove any double quotes('\"') from the column name.\n" +" - Make sure the column name is not blank." +msgstr "" + +#: ckanext/canada/checks.py:13 ckanext/canada/checks.py:35 msgid "" "Column name {value} in column {column_number} is not valid for a DataStore " "header" msgstr "" -#: ckanext/canada/assets/internal/validation_spec.js:16 ckanext/canada/checks.py:30 +#: ckanext/canada/checks.py:18 +msgid "Header Too Long for DataStore" +msgstr "" + +#: ckanext/canada/checks.py:19 +msgid "" +"Column name is too long for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Make the column name at most 63 characters long." +msgstr "" + +#: ckanext/canada/checks.py:20 ckanext/canada/checks.py:43 msgid "" "Column name {value} in column {column_number} is too long for a DataStore " "header" @@ -103,52 +130,52 @@ msgstr "" msgid "Invalid business number" msgstr "" -#: ckanext/canada/helpers.py:288 ckanext/canada/helpers.py:289 +#: ckanext/canada/helpers.py:289 ckanext/canada/helpers.py:290 msgid "Treasury Board of Canada Secretariat" msgstr "" -#: ckanext/canada/helpers.py:540 +#: ckanext/canada/helpers.py:541 msgid "search-staging.open.canada.ca" msgstr "" -#: ckanext/canada/helpers.py:541 +#: ckanext/canada/helpers.py:542 msgid "search.open.canada.ca" msgstr "" -#: ckanext/canada/helpers.py:587 ckanext/canada/strings.py:13 -#: ckanext/canada/view.py:1196 +#: ckanext/canada/helpers.py:588 ckanext/canada/strings.py:13 +#: ckanext/canada/view.py:1162 msgid "Members not found" msgstr "" -#: ckanext/canada/helpers.py:713 +#: ckanext/canada/helpers.py:711 msgid "Data awaiting load to DataStore" msgstr "" -#: ckanext/canada/helpers.py:714 +#: ckanext/canada/helpers.py:712 msgid "Loading data into DataStore" msgstr "" -#: ckanext/canada/helpers.py:715 +#: ckanext/canada/helpers.py:713 msgid "Data loaded into DataStore" msgstr "" -#: ckanext/canada/helpers.py:716 +#: ckanext/canada/helpers.py:714 msgid "Failed to load data into DataStore" msgstr "" -#: ckanext/canada/helpers.py:717 +#: ckanext/canada/helpers.py:715 msgid "Data available in DataStore" msgstr "" -#: ckanext/canada/helpers.py:718 +#: ckanext/canada/helpers.py:716 msgid "Resource not active in DataStore" msgstr "" -#: ckanext/canada/helpers.py:719 +#: ckanext/canada/helpers.py:717 msgid "DataStore status unknown" msgstr "" -#: ckanext/canada/helpers.py:786 ckanext/canada/templates/home/quick_links.html:65 +#: ckanext/canada/helpers.py:784 ckanext/canada/templates/home/quick_links.html:65 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:28 #: ckanext/canada/templates/snippets/cdts/header.html:31 #: ckanext/canada/templates/snippets/dataset_facets.html:3 @@ -157,7 +184,7 @@ msgstr "" msgid "Open Data" msgstr "" -#: ckanext/canada/helpers.py:787 ckanext/canada/templates/home/quick_links.html:79 +#: ckanext/canada/helpers.py:785 ckanext/canada/templates/home/quick_links.html:79 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:30 #: ckanext/canada/templates/snippets/cdts/header.html:54 #: ckanext/canada/templates/snippets/dataset_facets.html:5 @@ -166,120 +193,123 @@ msgstr "" msgid "Open Information" msgstr "" -#: ckanext/canada/helpers.py:796 -#: ckanext/canada/templates/snippets/dataset_facets.html:26 +#: ckanext/canada/helpers.py:794 +#: ckanext/canada/templates/snippets/dataset_facets.html:27 msgid "Request sent to data owner - awaiting response" msgstr "" -#: ckanext/canada/helpers.py:800 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:798 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Pending" msgstr "" -#: ckanext/canada/helpers.py:801 ckanext/canada/templates/package/read.html:15 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:799 ckanext/canada/templates/package/read.html:14 +#: ckanext/canada/templates/snippets/package_item.html:33 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Draft" msgstr "" -#: ckanext/canada/helpers.py:810 ckanext/canada/templates/home/quick_links.html:133 +#: ckanext/canada/helpers.py:808 ckanext/canada/templates/home/quick_links.html:133 #: ckanext/canada/templates/snippets/cdts/header.html:57 -#: ckanext/canada/templates/snippets/dataset_facets.html:31 +#: ckanext/canada/templates/snippets/dataset_facets.html:33 #: ckanext/canada/templates/snippets/package_item.html:15 #: ckanext/canada/templates/snippets/package_item.html:21 msgid "Proactive Publication" msgstr "" -#: ckanext/canada/helpers.py:832 -#: ckanext/canada/templates/snippets/publish_facet.html:24 +#: ckanext/canada/helpers.py:830 +#: ckanext/canada/templates/snippets/publish_facet.html:25 msgid "Published" msgstr "" -#: ckanext/canada/helpers.py:834 -#: ckanext/canada/templates/snippets/publish_facet.html:33 +#: ckanext/canada/helpers.py:832 +#: ckanext/canada/templates/snippets/publish_facet.html:34 msgid "Scheduled" msgstr "" -#: ckanext/canada/helpers.py:869 +#: ckanext/canada/helpers.py:867 msgid "Registry Home" msgstr "" -#: ckanext/canada/helpers.py:874 +#: ckanext/canada/helpers.py:872 msgid "Open Government" msgstr "" -#: ckanext/canada/helpers.py:877 -#: ckanext/canada/templates/admin/publish_search.html:18 +#: ckanext/canada/helpers.py:875 +#: ckanext/canada/templates/admin/publish_search.html:19 #: ckanext/canada/templates/home/quick_links.html:104 -#: ckanext/canada/templates/organization/snippets/organization_search.html:7 +#: ckanext/canada/templates/organization/snippets/organization_search.html:8 #: ckanext/canada/templates/snippets/cdts/header.html:150 -#: ckanext/canada/templates/snippets/search_form.html:44 +#: ckanext/canada/templates/snippets/search_form.html:45 +#: ckanext/canada/templates/user/snippets/user_search.html:10 msgid "Search" msgstr "" -#: ckanext/canada/logic.py:296 +#: ckanext/canada/logic.py:297 msgid "Could not determine a resource format. Please supply a format." msgstr "" -#: ckanext/canada/logic.py:457 +#: ckanext/canada/logic.py:458 msgid "Unknown Job" msgstr "" -#: ckanext/canada/plugins.py:703 +#: ckanext/canada/plugins.py:734 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:25 msgid "Portal Type" msgstr "" -#: ckanext/canada/plugins.py:704 ckanext/canada/templates/package/deleted.html:14 -#: ckanext/canada/templates/user/new_user_form.html:17 +#: ckanext/canada/plugins.py:735 ckanext/canada/templates/package/deleted.html:14 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Organization" msgstr "" -#: ckanext/canada/plugins.py:705 +#: ckanext/canada/plugins.py:736 msgid "Collection Type" msgstr "" -#: ckanext/canada/plugins.py:706 ckanext/canada/plugins.py:707 +#: ckanext/canada/plugins.py:737 ckanext/canada/plugins.py:738 msgid "Keywords" msgstr "" -#: ckanext/canada/plugins.py:708 +#: ckanext/canada/plugins.py:739 msgid "Subject" msgstr "" -#: ckanext/canada/plugins.py:709 +#: ckanext/canada/plugins.py:740 +#: ckanext/canada/templates/package/snippets/resource_info.html:13 #: ckanext/canada/templates/tabledesigner/view_snippets/cra_business_number.html:1 msgid "Format" msgstr "" -#: ckanext/canada/plugins.py:710 +#: ckanext/canada/plugins.py:741 msgid "Resource Type" msgstr "" -#: ckanext/canada/plugins.py:711 +#: ckanext/canada/plugins.py:742 msgid "Maintenance and Update Frequency" msgstr "" -#: ckanext/canada/plugins.py:712 +#: ckanext/canada/plugins.py:743 msgid "Record Status" msgstr "" -#: ckanext/canada/plugins.py:713 +#: ckanext/canada/plugins.py:744 msgid "IMSO Approval" msgstr "" -#: ckanext/canada/plugins.py:714 +#: ckanext/canada/plugins.py:745 msgid "Jurisdiction" msgstr "" -#: ckanext/canada/plugins.py:715 +#: ckanext/canada/plugins.py:746 msgid "Suggestion Status" msgstr "" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Previous" msgstr "" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Next" msgstr "" @@ -292,44 +322,46 @@ msgstr "" msgid "Not authorized to access {group} members download" msgstr "" -#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1206 +#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1172 msgid "N/A" msgstr "" #: ckanext/canada/strings.py:15 -#: ckanext/canada/templates/organization/member_new.html:30 -#: ckanext/canada/templates/user/edit_user_form.html:7 +#: ckanext/canada/templates/organization/member_new.html:31 +#: ckanext/canada/templates/user/edit_user_form.html:8 #: ckanext/canada/templates/user/list.html:44 -#: ckanext/canada/templates/user/new_user_form.html:7 -#: ckanext/canada/templates/user/snippets/login_form.html:11 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/snippets/login_form.html:32 +#: ckanext/canada/view.py:1164 msgid "Username" msgstr "" -#: ckanext/canada/strings.py:16 ckanext/canada/templates/user/edit_user_form.html:9 -#: ckanext/canada/templates/user/new_user_form.html:13 -#: ckanext/canada/templates/user/read_base.html:60 -#: ckanext/canada/templates/user/recover_username.html:15 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/strings.py:16 +#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/read_base.html:58 +#: ckanext/canada/templates/user/recover_username.html:17 +#: ckanext/canada/view.py:1164 msgid "Email" msgstr "" -#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:5 -#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1198 +#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:7 +#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1164 msgid "Name" msgstr "" #: ckanext/canada/strings.py:18 -#: ckanext/canada/templates/organization/member_new.html:57 -#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1198 +#: ckanext/canada/templates/organization/member_new.html:58 +#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1164 msgid "Role" msgstr "" -#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1216 +#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1182 msgid "members" msgstr "" #: ckanext/canada/strings.py:20 +#: ckanext/canada/templates/organization/manage_members.html:7 #: ckanext/canada/templates/organization/members.html:32 msgid "CSV" msgstr "" @@ -393,210 +425,260 @@ msgid "Choose format" msgstr "" #: ckanext/canada/strings.py:35 +#: ckanext/canada/templates/user/snippets/login_form.html:48 msgid "Submit" msgstr "" #: ckanext/canada/strings.py:36 -#: ckanext/canada/templates/snippets/activities/deleted_resource_view.html:8 -msgid "{actor} deleted the {view_type} view {view}" +msgid "{actor} added the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:37 -msgid "Request Reset" +msgid "{actor} changed the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:38 -#: ckanext/canada/templates/user/edit_user_form.html:47 -msgid "Create API Token" +msgid "{actor} deleted the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:39 -msgid "Token" +msgid "Request Reset" msgstr "" #: ckanext/canada/strings.py:40 -msgid "Last access" +#: ckanext/canada/templates/user/edit_user_form.html:48 +msgid "Create API Token" msgstr "" #: ckanext/canada/strings.py:41 -msgid "Actions" +msgid "Token" msgstr "" #: ckanext/canada/strings.py:42 -msgid "Revoke" +msgid "Last access" msgstr "" #: ckanext/canada/strings.py:43 -msgid "You haven't created any API Tokens." +msgid "Actions" msgstr "" #: ckanext/canada/strings.py:44 -msgid "Beta" +#: ckanext/canada/templates/user/snippets/api_token_list.html:8 +msgid "Revoke" msgstr "" #: ckanext/canada/strings.py:45 +msgid "You haven't created any API Tokens." +msgstr "" + +#: ckanext/canada/strings.py:46 +msgid "Beta" +msgstr "" + +#: ckanext/canada/strings.py:47 #, python-format msgid "Deleted API token %s" msgstr "" -#: ckanext/canada/strings.py:46 +#: ckanext/canada/strings.py:48 msgid "Organization created." msgstr "" -#: ckanext/canada/strings.py:47 +#: ckanext/canada/strings.py:49 msgid "Group created." msgstr "" -#: ckanext/canada/strings.py:48 +#: ckanext/canada/strings.py:50 msgid "Organization updated." msgstr "" -#: ckanext/canada/strings.py:49 +#: ckanext/canada/strings.py:51 msgid "Group updated." msgstr "" -#: ckanext/canada/strings.py:50 +#: ckanext/canada/strings.py:52 #, python-format msgid "Assigned %s as a member." msgstr "" -#: ckanext/canada/strings.py:51 +#: ckanext/canada/strings.py:53 #, python-format msgid "Assigned %s as an editor." msgstr "" -#: ckanext/canada/strings.py:52 +#: ckanext/canada/strings.py:54 #, python-format msgid "Assigned %s as an admin." msgstr "" -#: ckanext/canada/strings.py:53 +#: ckanext/canada/strings.py:55 msgid "View deleted." msgstr "" -#: ckanext/canada/strings.py:54 +#: ckanext/canada/strings.py:56 msgid "View updated." msgstr "" -#: ckanext/canada/strings.py:55 +#: ckanext/canada/strings.py:57 msgid "View created." msgstr "" -#: ckanext/canada/strings.py:56 +#: ckanext/canada/strings.py:58 msgid "Promoted {} to sysadmin" msgstr "" -#: ckanext/canada/strings.py:57 +#: ckanext/canada/strings.py:59 msgid "Revoked sysadmin permission from {}" msgstr "" -#: ckanext/canada/strings.py:58 +#: ckanext/canada/strings.py:60 msgid "Current Sysadmins" msgstr "" -#: ckanext/canada/strings.py:59 +#: ckanext/canada/strings.py:61 msgid "Revoke Sysadmin permission" msgstr "" -#: ckanext/canada/strings.py:60 +#: ckanext/canada/strings.py:62 msgid "Promote user to Sysadmin" msgstr "" -#: ckanext/canada/strings.py:61 +#: ckanext/canada/strings.py:63 msgid "Promote" msgstr "" -#: ckanext/canada/strings.py:62 +#: ckanext/canada/strings.py:64 msgid "Cannot modify your own sysadmin privileges" msgstr "" -#: ckanext/canada/strings.py:63 +#: ckanext/canada/strings.py:65 msgid "Cannot modify sysadmin privileges for system user" msgstr "" -#: ckanext/canada/strings.py:64 -#: ckanext/canada/templates/snippets/facet_list.html:43 -#: ckanext/canada/templates/snippets/facet_list.html:44 +#: ckanext/canada/strings.py:66 +msgid "Activity type" +msgstr "" + +#: ckanext/canada/strings.py:67 +#: ckanext/canada/templates/snippets/facet_list.html:47 +#: ckanext/canada/templates/snippets/facet_list.html:48 msgid "Show more" msgstr "" -#: ckanext/canada/strings.py:65 +#: ckanext/canada/strings.py:68 msgid "Hide" msgstr "" -#: ckanext/canada/strings.py:66 -msgid "" -"You can use Markdown " -"formatting here" +#: ckanext/canada/strings.py:69 +#, python-format +msgid "User %s deleted. You are now logged out." msgstr "" -#: ckanext/canada/strings.py:67 -msgid "" -"

__bold text__

_italic text_

* list
* of
* " -"items

1. numbered
2. list
3. of " -"items

https://auto.link.ed/

[Formatted " -"Link](https://formatted.link)

> block quote

Please note: HTML tags are stripped out for security " -"reasons

" +#: ckanext/canada/strings.py:70 +#, python-format +msgid "User %s deleted." msgstr "" -#: ckanext/canada/strings.py:70 +#: ckanext/canada/strings.py:73 msgid "Please upload a file or link to an external resource" msgstr "" -#: ckanext/canada/strings.py:71 +#: ckanext/canada/strings.py:74 msgid "Cannot upload files of this type" msgstr "" -#: ckanext/canada/strings.py:72 +#: ckanext/canada/strings.py:75 msgid "Cannot link files of this type" msgstr "" -#: ckanext/canada/strings.py:73 +#: ckanext/canada/strings.py:76 msgid "Your password must be {} characters or longer." msgstr "" -#: ckanext/canada/strings.py:74 +#: ckanext/canada/strings.py:77 msgid "" "Your password must consist of at least three of the following character sets:" " uppercase characters, lowercase characters, digits, punctuation & special " "characters." msgstr "" -#: ckanext/canada/strings.py:76 +#: ckanext/canada/strings.py:79 msgid "Your password cannot be the same as your username." msgstr "" -#: ckanext/canada/strings.py:79 +#: ckanext/canada/strings.py:81 +msgid "" +"Your current password is too weak. Please create a new password before " +"logging in again." +msgstr "" + +#: ckanext/canada/strings.py:84 msgid "These fields have been removed, click update below to save your changes." msgstr "" -#: ckanext/canada/strings.py:80 +#: ckanext/canada/strings.py:85 msgid "These fields have been removed." msgstr "" -#: ckanext/canada/strings.py:83 +#: ckanext/canada/strings.py:88 msgid "Your form submission could not be validated, please re-submit the form." msgstr "" -#: ckanext/canada/strings.py:86 +#: ckanext/canada/strings.py:91 msgid "Open Government Portal" msgstr "" -#: ckanext/canada/strings.py:87 +#: ckanext/canada/strings.py:92 msgid "Open Government Portal (staging)" msgstr "" -#: ckanext/canada/strings.py:90 +#: ckanext/canada/strings.py:95 +msgid "Delete from DataStore" +msgstr "" + +#: ckanext/canada/strings.py:96 +msgid "Are you sure you want to delete the DataStore and Data Dictionary?" +msgstr "" + +#: ckanext/canada/strings.py:97 +#: ckanext/canada/templates/organization/confirm_delete_member.html:3 +#: ckanext/canada/templates/organization/confirm_delete_member.html:14 +#: ckanext/canada/templates/package/confirm_delete.html:3 +#: ckanext/canada/templates/package/confirm_delete.html:13 +#: ckanext/canada/templates/package/confirm_delete_resource.html:3 +#: ckanext/canada/templates/package/confirm_delete_resource.html:13 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:41 +#: ckanext/canada/templates/user/confirm_delete.html:3 +#: ckanext/canada/templates/user/confirm_delete.html:14 +msgid "Confirm Delete" +msgstr "" + +#: ckanext/canada/strings.py:100 +msgid "Validation Information" +msgstr "" + +#: ckanext/canada/strings.py:101 +msgid "Validation status:" +msgstr "" + +#: ckanext/canada/strings.py:102 +msgid "Validation timestamp:" +msgstr "" + +#: ckanext/canada/strings.py:103 +msgid "Duration:" +msgstr "" + +#: ckanext/canada/strings.py:106 msgid "Single" msgstr "" -#: ckanext/canada/strings.py:91 +#: ckanext/canada/strings.py:107 msgid "Repeatable" msgstr "" -#: ckanext/canada/strings.py:92 +#: ckanext/canada/strings.py:108 msgid "Optional" msgstr "" @@ -629,7 +711,7 @@ msgstr "" msgid "Badly formed hexadecimal UUID string" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:7 #: ckanext/canada/validators.py:198 ckanext/canada/validators.py:200 msgid "Please enter a valid email address." msgstr "" @@ -673,156 +755,144 @@ msgstr "" msgid "Invalid value for a digital object identifier." msgstr "" -#: ckanext/canada/view.py:101 +#: ckanext/canada/view.py:103 msgid "Note
{0} is now logged in" msgstr "" -#: ckanext/canada/view.py:111 +#: ckanext/canada/view.py:113 msgid "Login failed. Bad username or password." msgstr "" -#: ckanext/canada/view.py:159 +#: ckanext/canada/view.py:161 msgid "" "The status has been added/updated for this suggested dataset. This update " "will be reflected on open.canada.ca shortly." msgstr "" -#: ckanext/canada/view.py:162 +#: ckanext/canada/view.py:164 #, python-format msgid "Your dataset %s has been saved." msgstr "" -#: ckanext/canada/view.py:172 +#: ckanext/canada/view.py:174 msgid "Dataset added." msgstr "" -#: ckanext/canada/view.py:181 +#: ckanext/canada/view.py:183 msgid "Resource updated." msgstr "" -#: ckanext/canada/view.py:190 +#: ckanext/canada/view.py:192 msgid "Resource added." msgstr "" -#: ckanext/canada/view.py:245 +#: ckanext/canada/view.py:247 msgid "Unauthorized to request username recovery." msgstr "" -#: ckanext/canada/view.py:250 +#: ckanext/canada/view.py:252 msgid "Email is required" msgstr "" -#: ckanext/canada/view.py:275 +#: ckanext/canada/view.py:277 msgid "Error sending the email. Try again later or contact an administrator for help" msgstr "" -#: ckanext/canada/view.py:282 +#: ckanext/canada/view.py:284 msgid "" "An email has been sent to you containing your username(s). (unless the " "account specified does not exist)" msgstr "" -#: ckanext/canada/view.py:360 +#: ckanext/canada/view.py:362 msgid "Unauthorized to create a resource for this package" msgstr "" -#: ckanext/canada/view.py:397 ckanext/canada/view.py:408 +#: ckanext/canada/view.py:399 ckanext/canada/view.py:410 msgid "This record already exists" msgstr "" -#: ckanext/canada/view.py:405 ckanext/canada/view.py:413 +#: ckanext/canada/view.py:407 ckanext/canada/view.py:415 msgid "Something went wrong, your record was not created. Please contact support." msgstr "" -#: ckanext/canada/view.py:428 +#: ckanext/canada/view.py:430 msgid "Record Created" msgstr "" -#: ckanext/canada/view.py:466 +#: ckanext/canada/view.py:468 msgid "Unauthorized to update dataset" msgstr "" -#: ckanext/canada/view.py:476 ckanext/canada/view.py:617 ckanext/canada/view.py:652 +#: ckanext/canada/view.py:478 ckanext/canada/view.py:619 ckanext/canada/view.py:654 msgid "Not found" msgstr "" -#: ckanext/canada/view.py:478 +#: ckanext/canada/view.py:480 msgid "Multiple records found" msgstr "" -#: ckanext/canada/view.py:515 +#: ckanext/canada/view.py:517 msgid "Something went wrong, your record was not updated. Please contact support." msgstr "" -#: ckanext/canada/view.py:531 +#: ckanext/canada/view.py:533 #, python-format msgid "Record %s Updated" msgstr "" -#: ckanext/canada/view.py:570 +#: ckanext/canada/view.py:572 msgid "No organizations found" msgstr "" -#: ckanext/canada/view.py:574 +#: ckanext/canada/view.py:576 msgid "Recombinant resource_name not found" msgstr "" -#: ckanext/canada/view.py:608 +#: ckanext/canada/view.py:610 msgid "User {0} not authorized to update resource {1}" msgstr "" -#: ckanext/canada/view.py:663 +#: ckanext/canada/view.py:665 msgid "{num} deleted." msgstr "" #. SQL Trigger String for PD Type: service -#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:705 +#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:707 msgid "Number required" msgstr "" -#: ckanext/canada/view.py:710 +#: ckanext/canada/view.py:712 msgid "Integer required" msgstr "" -#: ckanext/canada/view.py:746 ckanext/canada/view.py:754 ckanext/canada/view.py:788 +#: ckanext/canada/view.py:748 ckanext/canada/view.py:756 ckanext/canada/view.py:790 msgid "Not authorized to see this page" msgstr "" -#: ckanext/canada/view.py:774 +#: ckanext/canada/view.py:776 msgid " record(s) published." msgstr "" -#: ckanext/canada/view.py:812 -#, python-format -msgid "Unauthorized to delete resource %s" -msgstr "" - -#: ckanext/canada/view.py:814 -#, python-format -msgid "DataStore table and Data Dictionary deleted for resource %s" -msgstr "" - -#: ckanext/canada/templates/organization/edit_base.html:31 -#: ckanext/canada/templates/organization/read_base.html:35 #: ckanext/canada/templates/organization/snippets/organization_item.html:16 #: ckanext/canada/templates/package/edit.html:4 #: ckanext/canada/templates/package/edit.html:8 #: ckanext/canada/templates/package/resource_edit.html:3 #: ckanext/canada/templates/package/resource_edit_base.html:7 #: ckanext/canada/templates/package/wet_datatable.html:15 -#: ckanext/canada/view.py:908 +#: ckanext/canada/view.py:874 msgid "Edit" msgstr "" -#: ckanext/canada/view.py:1041 +#: ckanext/canada/view.py:1007 msgid "Access denied" msgstr "" -#: ckanext/canada/view.py:1092 +#: ckanext/canada/view.py:1058 msgid "Account Created" msgstr "" -#: ckanext/canada/view.py:1094 +#: ckanext/canada/view.py:1060 msgid "" "Thank you for creating your account for the Open Government registry. " "Although your account is active, it has not yet been linked to your " @@ -830,7 +900,7 @@ msgid "" "able to create or modify datasets in the registry." msgstr "" -#: ckanext/canada/view.py:1101 +#: ckanext/canada/view.py:1067 msgid "" "You should receive an email within the next business day once the account " "activation process has been completed. If you require faster processing of " @@ -838,51 +908,24 @@ msgid "" "ouvert@tbs-sct.gc.ca\">open-ouvert@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/view.py:1175 ckanext/canada/view.py:1253 +#: ckanext/canada/view.py:1141 ckanext/canada/view.py:1219 msgid "Organization not found" msgstr "" -#: ckanext/canada/view.py:1186 +#: ckanext/canada/view.py:1152 msgid "Not authorized to access {org_name} members download" msgstr "" -#: ckanext/canada/view.py:1256 +#: ckanext/canada/view.py:1222 #, python-format msgid "User %r not authorized to edit members of %s" msgstr "" -#: ckanext/canada/view.py:1258 +#: ckanext/canada/view.py:1224 #, python-format msgid "User %r not authorized to view members of %s" msgstr "" -#: ckanext/canada/assets/internal/validation_spec.js:7 -msgid "Invalid Header for DataStore" -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:9 -msgid "" -"Column name is invalid for a DataStore header.\n" -"\n" -" How it could be resolved:\n" -" - Remove any leading underscores('_') from the column name.\n" -" - Remove any leading or trailing white space from the column name.\n" -" - Remove any double quotes('\"') from the column name.\n" -" - Make sure the column name is not blank." -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:15 -msgid "Header Too Long for DataStore" -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:17 -msgid "" -"Column name is too long for a DataStore header.\n" -"\n" -" How it could be resolved:\n" -" - Make the column name at most 63 characters long." -msgstr "" - #. Title for PD Type: adminaircraft #. Resource Title for PD Type: adminaircraft #: ckanext/canada/tables/adminaircraft.yaml:5 @@ -1520,7 +1563,7 @@ msgstr "" #: ckanext/canada/templates/error_document_template.html:33 #: ckanext/canada/templates/page.html:29 -#: ckanext/canada/templates/user/snippets/login_form.html:16 +#: ckanext/canada/templates/user/snippets/login_form.html:37 msgid "Log in" msgstr "" @@ -1535,7 +1578,7 @@ msgstr "" #: ckanext/canada/templates/help.html:4 #: ckanext/canada/templates/organization/about.html:4 #: ckanext/canada/templates/page.html:61 -#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/edit_user_form.html:11 msgid "About" msgstr "" @@ -1894,7 +1937,7 @@ msgid "Users" msgstr "" #: ckanext/canada/templates/admin/base.html:15 -#: ckanext/canada/templates/admin/trash.html:31 +#: ckanext/canada/templates/admin/trash.html:13 msgid "Trash" msgstr "" @@ -1948,44 +1991,40 @@ msgstr "" msgid "Search Datasets" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:14 +#: ckanext/canada/templates/admin/publish_search.html:15 msgid "Search datasets..." msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:52 +#: ckanext/canada/templates/admin/publish_search.html:58 #: ckanext/canada/templates/scheming/form_snippets/repeating_subfields.html:8 -#: ckanext/canada/templates/snippets/search_form.html:82 +#: ckanext/canada/templates/snippets/search_form.html:88 msgid "Remove" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:62 +#: ckanext/canada/templates/admin/publish_search.html:68 msgid "

Please try another search.

" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:69 +#: ckanext/canada/templates/admin/publish_search.html:75 msgid "

There was an error while searching. Please try again.

" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 msgid "Search Filters" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 -#: ckanext/canada/templates/snippets/facet_list.html:56 -#: ckanext/canada/templates/snippets/facet_list.html:57 -#: ckanext/canada/templates/snippets/publish_facet.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:63 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 +#: ckanext/canada/templates/snippets/facet_list.html:61 +#: ckanext/canada/templates/snippets/facet_list.html:62 +#: ckanext/canada/templates/snippets/publish_facet.html:60 +#: ckanext/canada/templates/snippets/publish_facet.html:61 msgid "Clear All" msgstr "" -#: ckanext/canada/templates/admin/trash.html:20 -msgid "Purge" -msgstr "" - -#: ckanext/canada/templates/admin/trash.html:35 -msgid "

Purge deleted datasets forever and irreversibly.

" +#: ckanext/canada/templates/admin/trash.html:17 +msgid "Purge deleted datasets, organizations or groups forever and irreversibly." msgstr "" #: ckanext/canada/templates/admin/snippets/package_item.html:8 @@ -2006,37 +2045,6 @@ msgstr "" msgid "Publish Selected Records" msgstr "" -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:3 -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:13 -#: ckanext/canada/templates/organization/confirm_delete_member.html:3 -#: ckanext/canada/templates/organization/confirm_delete_member.html:13 -#: ckanext/canada/templates/package/confirm_delete.html:3 -#: ckanext/canada/templates/package/confirm_delete.html:12 -#: ckanext/canada/templates/package/confirm_delete_resource.html:3 -#: ckanext/canada/templates/package/confirm_delete_resource.html:12 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 -#: ckanext/canada/templates/user/confirm_delete.html:3 -#: ckanext/canada/templates/user/confirm_delete.html:13 -msgid "Confirm Delete" -msgstr "" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:8 -#: ckanext/canada/templates/xloader/resource_data.html:9 -msgid "Are you sure you want to delete this DataStore table and Data Dictionary?" -msgstr "" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:12 -#: ckanext/canada/templates/organization/confirm_delete_member.html:12 -#: ckanext/canada/templates/package/confirm_delete.html:11 -#: ckanext/canada/templates/package/confirm_delete_resource.html:11 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:39 -#: ckanext/canada/templates/recombinant/create_pd_record.html:86 -#: ckanext/canada/templates/recombinant/update_pd_record.html:89 -#: ckanext/canada/templates/user/confirm_delete.html:12 -msgid "Cancel" -msgstr "" - #: ckanext/canada/templates/datastore/snippets/dictionary_form.html:7 msgid "English Label" msgstr "" @@ -2197,14 +2205,31 @@ msgid "" "appearance for your deputy head." msgstr "" +#: ckanext/canada/templates/macros/form/markdown.html:27 +msgid "" +"

__bold text__

_italic text_

* list
* of
* " +"items

1. numbered
2. list
3. of " +"items

https://auto.link.ed/

[Formatted " +"Link](https://formatted.link)

> block quote

Please note: HTML tags are stripped out for security " +"reasons

" +msgstr "" + +#: ckanext/canada/templates/macros/form/markdown.html:33 +msgid "" +"You can use Markdown formatting here" +msgstr "" + #: ckanext/canada/templates/organization/activity_stream.html:4 -#: ckanext/canada/templates/package/read_base.html:23 +#: ckanext/canada/templates/package/read_base.html:27 #: ckanext/canada/templates/user/activity_stream.html:12 msgid "Activity Stream" msgstr "" #: ckanext/canada/templates/organization/activity_stream.html:11 -#: ckanext/canada/templates/package/read_base.html:150 +#: ckanext/canada/templates/package/read_base.html:154 msgid "Atom Feed" msgstr "" @@ -2212,26 +2237,53 @@ msgstr "" msgid "Are you sure you want to delete member - {name}?" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:15 -#: ckanext/canada/templates/organization/read_base.html:24 -#: ckanext/canada/templates/package/search.html:16 -#: ckanext/canada/templates/snippets/organization.html:37 -#: ckanext/canada/templates/user/read.html:21 -msgid "Datasets" +#: ckanext/canada/templates/organization/confirm_delete_member.html:13 +#: ckanext/canada/templates/package/confirm_delete.html:12 +#: ckanext/canada/templates/package/confirm_delete_resource.html:12 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 +#: ckanext/canada/templates/recombinant/create_pd_record.html:87 +#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/user/confirm_delete.html:13 +msgid "Cancel" +msgstr "" + +#: ckanext/canada/templates/organization/edit.html:6 +#: ckanext/canada/templates/organization/edit_base.html:10 +#: ckanext/canada/templates/user/edit.html:7 +msgid "Manage" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:8 +#: ckanext/canada/templates/organization/index.html:26 +#: ckanext/canada/templates/organization/members.html:10 +#: ckanext/canada/templates/organization/read_base.html:7 +#: ckanext/canada/templates/snippets/cdts/header.html:154 +#: ckanext/canada/templates/user/read.html:28 +#: ckanext/canada/templates/user/read_base.html:12 +#: ckanext/canada/templates/user/read_base.html:97 +msgid "Organizations" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:18 -#: ckanext/canada/templates/organization/read_base.html:27 +#: ckanext/canada/templates/organization/edit_base.html:19 +msgid "View Organization" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:26 +msgid "Edit Organization" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:28 +#: ckanext/canada/templates/organization/read_base.html:21 msgid "Activity" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:22 -#: ckanext/canada/templates/organization/read_base.html:31 +#: ckanext/canada/templates/organization/edit_base.html:30 +#: ckanext/canada/templates/organization/read_base.html:23 msgid "Edit Members" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:26 -#: ckanext/canada/templates/organization/read_base.html:40 +#: ckanext/canada/templates/organization/edit_base.html:32 +#: ckanext/canada/templates/organization/read_base.html:25 msgid "View Members" msgstr "" @@ -2243,15 +2295,6 @@ msgstr "" msgid "How about creating one?" msgstr "" -#: ckanext/canada/templates/organization/index.html:26 -#: ckanext/canada/templates/organization/members.html:10 -#: ckanext/canada/templates/organization/read_base.html:6 -#: ckanext/canada/templates/snippets/cdts/header.html:154 -#: ckanext/canada/templates/user/read.html:28 -#: ckanext/canada/templates/user/read_base.html:99 -msgid "Organizations" -msgstr "" - #: ckanext/canada/templates/organization/member_new.html:9 msgid "Back to all members" msgstr "" @@ -2261,54 +2304,54 @@ msgid "Edit Member" msgstr "" #: ckanext/canada/templates/organization/member_new.html:11 -#: ckanext/canada/templates/organization/member_new.html:66 +#: ckanext/canada/templates/organization/member_new.html:67 msgid "Add Member" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:19 +#: ckanext/canada/templates/organization/member_new.html:20 msgid "Existing User" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:22 +#: ckanext/canada/templates/organization/member_new.html:23 msgid "If you wish to add an existing user, search for their username below." msgstr "" -#: ckanext/canada/templates/organization/member_new.html:38 +#: ckanext/canada/templates/organization/member_new.html:39 msgid "or" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:44 +#: ckanext/canada/templates/organization/member_new.html:45 msgid "New User" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:47 +#: ckanext/canada/templates/organization/member_new.html:48 msgid "If you wish to invite a new user, enter their email address." msgstr "" -#: ckanext/canada/templates/organization/member_new.html:50 +#: ckanext/canada/templates/organization/member_new.html:51 msgid "Email address" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 msgid "Are you sure you want to delete this member?" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 #: ckanext/canada/templates/scheming/package/read.html:26 #: ckanext/canada/templates/scheming/snippets/form_field.html:21 -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Delete" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:62 +#: ckanext/canada/templates/organization/member_new.html:63 msgid "Update Member" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:78 +#: ckanext/canada/templates/organization/member_new.html:79 msgid "What are roles?" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:81 +#: ckanext/canada/templates/organization/member_new.html:82 msgid "" "

Admin: Can add/edit and delete datasets, as well as " "manage organization members.

Editor: Can add and edit" @@ -2322,8 +2365,12 @@ msgstr "" msgid "Members" msgstr "" -#: ckanext/canada/templates/organization/read.html:12 -msgid "Edit Organization" +#: ckanext/canada/templates/organization/read_base.html:20 +#: ckanext/canada/templates/package/search.html:16 +#: ckanext/canada/templates/snippets/organization.html:37 +#: ckanext/canada/templates/user/read.html:21 +#: ckanext/canada/templates/user/read_base.html:11 +msgid "Datasets" msgstr "" #: ckanext/canada/templates/organization/snippets/helper.html:2 @@ -2351,7 +2398,10 @@ msgstr[1] "" msgid "0 Datasets" msgstr "" -#: ckanext/canada/templates/organization/snippets/organization_search.html:3 +#: ckanext/canada/templates/organization/snippets/organization_search.html:4 +#: ckanext/canada/templates/recombinant/snippets/org_select.html:18 +#: ckanext/canada/templates/scheming/form_snippets/organization_autocomplete.html:26 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Search organizations..." msgstr "" @@ -2396,64 +2446,55 @@ msgstr "" msgid "Disabled" msgstr "" -#: ckanext/canada/templates/package/read.html:18 -#: ckanext/canada/templates/package/read.html:101 +#: ckanext/canada/templates/package/read.html:17 +#: ckanext/canada/templates/package/read.html:93 #: ckanext/canada/templates/package/snippets/resource_item.html:12 #: ckanext/canada/templates/scheming/display_snippets/fluent_tags.html:8 -#: ckanext/canada/templates/snippets/package_item.html:37 -#: ckanext/canada/templates/snippets/package_item.html:56 +#: ckanext/canada/templates/snippets/package_item.html:39 +#: ckanext/canada/templates/snippets/package_item.html:55 msgid "" "This third party metadata element has been translated using an automated " "translation tool. To report any discrepancies please contact open-ouvert" "@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/templates/package/read.html:24 -#: ckanext/canada/templates/package/resource_read.html:23 -#, python-format -msgid "" -"You're currently viewing an old version of this dataset. Some resources may " -"no longer exist or the dataset may not display correctly. To see the current " -"version, click here." -msgstr "" - +#: ckanext/canada/templates/package/read.html:39 #: ckanext/canada/templates/package/read.html:47 -#: ckanext/canada/templates/package/read.html:55 msgid "Action required:" msgstr "" -#: ckanext/canada/templates/package/read.html:48 +#: ckanext/canada/templates/package/read.html:40 msgid "" "Draft record has been saved and can be edited. Mark as ready to publish to " "continue." msgstr "" -#: ckanext/canada/templates/package/read.html:56 +#: ckanext/canada/templates/package/read.html:48 msgid "Seek out departmental approval and mark as approved to continue." msgstr "" -#: ckanext/canada/templates/package/read.html:63 +#: ckanext/canada/templates/package/read.html:55 msgid "Data record is in queue for validation." msgstr "" -#: ckanext/canada/templates/package/read.html:64 +#: ckanext/canada/templates/package/read.html:56 msgid "Record will be published by the following business day upon validation." msgstr "" -#: ckanext/canada/templates/package/read.html:82 -#: ckanext/canada/templates/package/read.html:83 +#: ckanext/canada/templates/package/read.html:74 +#: ckanext/canada/templates/package/read.html:75 msgid "View on Portal" msgstr "" -#: ckanext/canada/templates/package/read.html:89 +#: ckanext/canada/templates/package/read.html:81 msgid "This dataset has been deleted and is no longer accessible" msgstr "" -#: ckanext/canada/templates/package/read.html:112 +#: ckanext/canada/templates/package/read.html:104 msgid "Made available by the " msgstr "" -#: ckanext/canada/templates/package/read.html:114 +#: ckanext/canada/templates/package/read.html:106 msgid "" "

These resources are not under the control of the Government of Canada and " "the link is provided solely for the convenience of our website visitors. We " @@ -2470,154 +2511,166 @@ msgid "" "this non-government website before providing personal information.

" msgstr "" -#: ckanext/canada/templates/package/read.html:129 -#: ckanext/canada/templates/package/read.html:152 -#: ckanext/canada/templates/package/read_base.html:56 -#: ckanext/canada/templates/package/read_base.html:65 -#: ckanext/canada/templates/package/read_base.html:81 -#: ckanext/canada/templates/package/read_base.html:155 -#: ckanext/canada/templates/package/read_base.html:187 -#: ckanext/canada/templates/recombinant/create_pd_record.html:29 -#: ckanext/canada/templates/recombinant/update_pd_record.html:29 -#: ckanext/canada/templates/snippets/package_item.html:91 +#: ckanext/canada/templates/package/read.html:121 +#: ckanext/canada/templates/package/read.html:144 +#: ckanext/canada/templates/package/read_base.html:60 +#: ckanext/canada/templates/package/read_base.html:69 +#: ckanext/canada/templates/package/read_base.html:85 +#: ckanext/canada/templates/package/read_base.html:159 +#: ckanext/canada/templates/package/read_base.html:191 +#: ckanext/canada/templates/recombinant/create_pd_record.html:30 +#: ckanext/canada/templates/recombinant/update_pd_record.html:30 +#: ckanext/canada/templates/snippets/package_item.html:90 msgid ":" msgstr "" -#: ckanext/canada/templates/package/read.html:150 +#: ckanext/canada/templates/package/read.html:142 msgid "Issued by" msgstr "" -#: ckanext/canada/templates/package/read.html:177 +#: ckanext/canada/templates/package/read.html:169 msgid "Related Items" msgstr "" -#: ckanext/canada/templates/package/read.html:191 +#: ckanext/canada/templates/package/read.html:183 msgid "Contact Information" msgstr "" -#: ckanext/canada/templates/package/read.html:193 +#: ckanext/canada/templates/package/read.html:185 msgid "Delivery Point:" msgstr "" -#: ckanext/canada/templates/package/read.html:196 +#: ckanext/canada/templates/package/read.html:188 msgid "City:" msgstr "" -#: ckanext/canada/templates/package/read.html:199 +#: ckanext/canada/templates/package/read.html:191 msgid "Administrative Area:" msgstr "" -#: ckanext/canada/templates/package/read.html:202 +#: ckanext/canada/templates/package/read.html:194 msgid "Postal Code:" msgstr "" -#: ckanext/canada/templates/package/read.html:205 +#: ckanext/canada/templates/package/read.html:197 msgid "Country:" msgstr "" -#: ckanext/canada/templates/package/read.html:208 +#: ckanext/canada/templates/package/read.html:200 msgid "Electronic Mail Address:" msgstr "" -#: ckanext/canada/templates/package/read.html:230 +#: ckanext/canada/templates/package/read.html:222 msgid "Similar records" msgstr "" -#: ckanext/canada/templates/package/read_base.html:18 +#: ckanext/canada/templates/package/read_base.html:22 msgid "Dataset" msgstr "" -#: ckanext/canada/templates/package/read_base.html:41 +#: ckanext/canada/templates/package/read_base.html:45 #: ckanext/canada/templates/scheming/package/resource_read.html:9 msgid "Additional Information" msgstr "" -#: ckanext/canada/templates/package/read_base.html:65 +#: ckanext/canada/templates/package/read_base.html:69 msgid "Temporal Coverage" msgstr "" -#: ckanext/canada/templates/package/read_base.html:68 +#: ckanext/canada/templates/package/read_base.html:72 msgid "to" msgstr "" -#: ckanext/canada/templates/package/read_base.html:70 +#: ckanext/canada/templates/package/read_base.html:74 msgid "to undefined" msgstr "" -#: ckanext/canada/templates/package/read_base.html:72 +#: ckanext/canada/templates/package/read_base.html:76 msgid "undefined to" msgstr "" -#: ckanext/canada/templates/package/read_base.html:81 +#: ckanext/canada/templates/package/read_base.html:85 msgid "Openness Rating" msgstr "" -#: ckanext/canada/templates/package/read_base.html:86 +#: ckanext/canada/templates/package/read_base.html:90 msgid "one star" msgstr "" -#: ckanext/canada/templates/package/read_base.html:87 +#: ckanext/canada/templates/package/read_base.html:91 msgid "two stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:88 +#: ckanext/canada/templates/package/read_base.html:92 msgid "three stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:89 +#: ckanext/canada/templates/package/read_base.html:93 msgid "four stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:90 +#: ckanext/canada/templates/package/read_base.html:94 msgid "five stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:101 +#: ckanext/canada/templates/package/read_base.html:105 msgid "About this Record" msgstr "" -#: ckanext/canada/templates/package/read_base.html:105 +#: ckanext/canada/templates/package/read_base.html:109 msgid "Record Released:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:109 +#: ckanext/canada/templates/package/read_base.html:113 msgid "Record Modified:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:113 +#: ckanext/canada/templates/package/read_base.html:117 msgid "Record ID:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:117 +#: ckanext/canada/templates/package/read_base.html:121 msgid "Metadata:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:121 +#: ckanext/canada/templates/package/read_base.html:125 msgid "Link to JSON format" msgstr "" -#: ckanext/canada/templates/package/read_base.html:127 +#: ckanext/canada/templates/package/read_base.html:131 msgid "DCAT (JSON-LD)" msgstr "" -#: ckanext/canada/templates/package/read_base.html:134 +#: ckanext/canada/templates/package/read_base.html:138 msgid "DCAT (XML)" msgstr "" -#: ckanext/canada/templates/package/read_base.html:142 +#: ckanext/canada/templates/package/read_base.html:146 msgid "FGP Metadata:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:144 +#: ckanext/canada/templates/package/read_base.html:148 msgid "HNAP ISO:19115 Metadata Record" msgstr "" -#: ckanext/canada/templates/package/resource_edit.html:12 +#: ckanext/canada/templates/package/resource_edit.html:11 msgid "Go back" msgstr "" -#: ckanext/canada/templates/package/resource_read.html:58 -#: ckanext/canada/templates/package/snippets/resource_item.html:73 +#: ckanext/canada/templates/package/resource_edit_base.html:12 +msgid "All resources" +msgstr "" + +#: ckanext/canada/templates/package/resource_edit_base.html:14 +msgid "View resource" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:62 +msgid "List of downloadable formats" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:64 +#: ckanext/canada/templates/package/snippets/resource_item.html:81 msgid "Download" msgstr "" @@ -2630,11 +2683,23 @@ msgstr "" msgid "Search Open Government" msgstr "" -#: ckanext/canada/templates/package/search.html:49 +#: ckanext/canada/templates/package/search.html:37 +msgid "License" +msgstr "" + +#: ckanext/canada/templates/package/search.html:57 msgid "Please review your spelling, or reduce the number of filters selected." msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:63 +#: ckanext/canada/templates/package/view_edit_base.html:4 +msgid "All views" +msgstr "" + +#: ckanext/canada/templates/package/view_edit_base.html:7 +msgid "View view" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:71 #: ckanext/canada/templates/package/wet_datatable.html:9 msgid "Preview" msgstr "" @@ -2700,38 +2765,71 @@ msgstr "" msgid "Data API" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:56 +#: ckanext/canada/templates/package/snippets/resource_info.html:8 +msgid "Additional Information " +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_info.html:40 +#: ckanext/canada/templates/package/snippets/resource_item.html:34 +#: ckanext/canada/templates/package/snippets/resources.html:51 +#, python-format +msgid "+ %s more" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:64 msgid "Explore" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:65 +#: ckanext/canada/templates/package/snippets/resource_item.html:73 msgid "More information" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:75 +#: ckanext/canada/templates/package/snippets/resource_item.html:83 msgid "Go to resource" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:84 +#: ckanext/canada/templates/package/snippets/resource_item.html:92 #: ckanext/canada/templates/package/snippets/resources_list.html:9 #: ckanext/canada/templates/snippets/search_form.html:34 msgid "View on Map" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:89 -#: ckanext/canada/templates/package/snippets/resources.html:25 +#: ckanext/canada/templates/package/snippets/resource_item.html:97 +#: ckanext/canada/templates/package/snippets/resources.html:21 msgid "Edit resource" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:91 +#: ckanext/canada/templates/package/snippets/resource_item.html:99 #: ckanext/canada/templates/package/snippets/resources.html:27 msgid "Views" msgstr "" +#: ckanext/canada/templates/package/snippets/resource_item.html:101 +#: ckanext/canada/templates/package/snippets/resources.html:29 +msgid "Are you sure you want to delete this resource?" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:102 +#: ckanext/canada/templates/package/snippets/resources.html:30 +msgid "Delete resource" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:24 +msgid "DataStore" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:25 +msgid "Data Dictionary" +msgstr "" + #: ckanext/canada/templates/package/snippets/resources_list.html:4 msgid "Data and Resources" msgstr "" +#: ckanext/canada/templates/package/snippets/resources_list.html:16 +msgid "Add new resource" +msgstr "" + #: ckanext/canada/templates/package/snippets/schemaorg.html:3 msgid "Government of Canada Open Government Portal" msgstr "" @@ -2820,19 +2918,19 @@ msgstr[1] "" msgid "Create Record" msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:24 -#: ckanext/canada/templates/recombinant/update_pd_record.html:24 +#: ckanext/canada/templates/recombinant/create_pd_record.html:25 +#: ckanext/canada/templates/recombinant/update_pd_record.html:25 #: ckanext/canada/templates/scheming/snippets/errors.html:6 msgid "The form contains invalid entries:" msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:54 -#: ckanext/canada/templates/recombinant/update_pd_record.html:57 +#: ckanext/canada/templates/recombinant/create_pd_record.html:55 +#: ckanext/canada/templates/recombinant/update_pd_record.html:58 msgid "You may select or deselect multiple entries (Ctrl+Click)." msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:87 -#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/recombinant/create_pd_record.html:88 +#: ckanext/canada/templates/recombinant/update_pd_record.html:91 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:63 msgid "Save" msgstr "" @@ -2853,11 +2951,15 @@ msgid "" "Coordinator." msgstr "" -#: ckanext/canada/templates/recombinant/resource_edit.html:39 +#: ckanext/canada/templates/recombinant/resource_edit.html:70 +msgid "Info" +msgstr "" + +#: ckanext/canada/templates/recombinant/resource_edit.html:77 msgid "Guide" msgstr "" -#: ckanext/canada/templates/recombinant/resource_edit.html:43 +#: ckanext/canada/templates/recombinant/resource_edit.html:81 #, python-format msgid "" "For information on how to prepare, maintain and upload templates to the " @@ -2935,6 +3037,16 @@ msgstr "" msgid "Image" msgstr "" +#: ckanext/canada/templates/scheming/organization/group_form.html:6 +#: ckanext/canada/templates/scheming/organization/group_form.html:8 +msgid "Update Organization" +msgstr "" + +#: ckanext/canada/templates/scheming/organization/group_form.html:12 +#: ckanext/canada/templates/scheming/organization/group_form.html:14 +msgid "Create Organization" +msgstr "" + #: ckanext/canada/templates/scheming/package/snippets/package_form.html:14 msgid "Catalogue Metadata" msgstr "" @@ -3018,8 +3130,16 @@ msgstr "" msgid "New activity item" msgstr "" -#: ckanext/canada/templates/snippets/activity_stream.html:8 -msgid "View the past 30 days of activity." +#: ckanext/canada/templates/snippets/activity_type_selector.html:12 +msgid "created datastore" +msgstr "" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:15 +msgid "changed datastore" +msgstr "" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:18 +msgid "deleted datastore" msgstr "" #: ckanext/canada/templates/snippets/dataset_facets.html:6 @@ -3027,13 +3147,13 @@ msgstr "" msgid "Suggested Datasets" msgstr "" -#: ckanext/canada/templates/snippets/facet_list.html:49 -#: ckanext/canada/templates/snippets/facet_list.html:50 +#: ckanext/canada/templates/snippets/facet_list.html:53 +#: ckanext/canada/templates/snippets/facet_list.html:54 msgid "Show less" msgstr "" -#: ckanext/canada/templates/snippets/facet_list.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:68 +#: ckanext/canada/templates/snippets/facet_list.html:68 +#: ckanext/canada/templates/snippets/publish_facet.html:67 msgid "There are no filters for this search" msgstr "" @@ -3041,32 +3161,36 @@ msgstr "" msgid "read more" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:60 +#: ckanext/canada/templates/snippets/package_item.html:35 +msgid "Deleted" +msgstr "" + +#: ckanext/canada/templates/snippets/package_item.html:59 msgid "This dataset has no description" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:67 +#: ckanext/canada/templates/snippets/package_item.html:66 msgid "Organization:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:78 +#: ckanext/canada/templates/snippets/package_item.html:77 msgid "Issued by:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:100 -#: ckanext/canada/templates/snippets/package_item.html:117 +#: ckanext/canada/templates/snippets/package_item.html:99 +#: ckanext/canada/templates/snippets/package_item.html:116 msgid "Status:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:108 +#: ckanext/canada/templates/snippets/package_item.html:107 msgid "Date:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:120 +#: ckanext/canada/templates/snippets/package_item.html:119 msgid "Request sent to data owner – awaiting response" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:127 +#: ckanext/canada/templates/snippets/package_item.html:128 msgid "Resource Formats:" msgstr "" @@ -3119,12 +3243,8 @@ msgstr "" msgid "Relevance" msgstr "" -#: ckanext/canada/templates/snippets/activities/changed_resource_view.html:8 -msgid "{actor} changed the {view_type} view {view}" -msgstr "" - -#: ckanext/canada/templates/snippets/activities/new_resource_view.html:8 -msgid "{actor} added the {view_type} view {view}" +#: ckanext/canada/templates/snippets/stream.html:8 +msgid "View the past 30 days of activity." msgstr "" #: ckanext/canada/templates/snippets/cdts/header.html:21 @@ -3137,10 +3257,8 @@ msgid "FAQ" msgstr "" #: ckanext/canada/templates/snippets/cdts/header.html:189 -#: ckanext/canada/templates/user/dashboard.html:4 -#: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 +#: ckanext/canada/templates/user/dashboard.html:9 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "Dashboard" msgstr "" @@ -3172,44 +3290,23 @@ msgstr "" msgid "Are you sure you want to delete user - {name}?" msgstr "" -#: ckanext/canada/templates/user/dashboard.html:4 +#: ckanext/canada/templates/user/dashboard.html:9 #: ckanext/canada/templates/user/dashboard.html:13 -#: ckanext/canada/templates/user/dashboard.html:37 -msgid "News feed" -msgstr "" - -#: ckanext/canada/templates/user/dashboard.html:16 -msgid "Activity from items that you follow" -msgstr "" - -#: ckanext/canada/templates/user/dashboard.html:30 -msgid "Add Dataset" +#: ckanext/canada/templates/user/dashboard.html:18 +#: ckanext/canada/templates/user/dashboard.html:22 +msgid "My Activity" msgstr "" -#: ckanext/canada/templates/user/dashboard.html:38 +#: ckanext/canada/templates/user/dashboard.html:23 msgid "My Datasets" msgstr "" -#: ckanext/canada/templates/user/dashboard_datasets.html:11 +#: ckanext/canada/templates/user/dashboard_datasets.html:10 #: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_datasets.html:22 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "My Records" msgstr "" -#: ckanext/canada/templates/user/dashboard_groups.html:5 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -msgid "My Groups" -msgstr "" - -#: ckanext/canada/templates/user/dashboard_organizations.html:5 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 -msgid "My Organizations" -msgstr "" - -#: ckanext/canada/templates/user/edit.html:7 -msgid "Manage" -msgstr "" - #: ckanext/canada/templates/user/edit_base.html:7 msgid "Edit My Profile" msgstr "" @@ -3218,63 +3315,63 @@ msgstr "" msgid "Edit Profile" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:6 +#: ckanext/canada/templates/user/edit_user_form.html:7 msgid "Change details" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "Full name" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "eg. Joe Bloggs" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:9 +#: ckanext/canada/templates/user/edit_user_form.html:10 msgid "eg. joe@example.com" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/edit_user_form.html:11 msgid "A little information about yourself" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:13 msgid "Subscribe to notification emails" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:19 +#: ckanext/canada/templates/user/edit_user_form.html:20 msgid "Change password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:22 +#: ckanext/canada/templates/user/edit_user_form.html:23 #: ckanext/canada/templates/user/perform_reset.html:8 msgid "password reset requirements" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Sysadmin Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Old Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:35 -#: ckanext/canada/templates/user/new_user_form.html:21 -#: ckanext/canada/templates/user/snippets/login_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:36 +#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/snippets/login_form.html:33 msgid "Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:36 -#: ckanext/canada/templates/user/new_user_form.html:24 +#: ckanext/canada/templates/user/edit_user_form.html:37 +#: ckanext/canada/templates/user/new_user_form.html:25 msgid "Confirm Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Are you sure you want to delete this User?" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:50 +#: ckanext/canada/templates/user/edit_user_form.html:51 msgid "Update Profile" msgstr "" @@ -3316,56 +3413,52 @@ msgstr "" msgid "password reset alert" msgstr "" -#: ckanext/canada/templates/user/login.html:12 -msgid "NOTE: Username and password are case sensitive." -msgstr "" - -#: ckanext/canada/templates/user/login.html:24 +#: ckanext/canada/templates/user/login.html:21 msgid "Need an account" msgstr "" -#: ckanext/canada/templates/user/login.html:27 +#: ckanext/canada/templates/user/login.html:24 msgid "Then sign right up, it only takes a minute" msgstr "" -#: ckanext/canada/templates/user/login.html:29 +#: ckanext/canada/templates/user/login.html:26 #: ckanext/canada/templates/user/new.html:5 msgid "Request an Account" msgstr "" -#: ckanext/canada/templates/user/login.html:35 +#: ckanext/canada/templates/user/login.html:32 msgid "Forgotten your password?" msgstr "" -#: ckanext/canada/templates/user/login.html:37 +#: ckanext/canada/templates/user/login.html:34 msgid "No problem, use our password recovery form to reset it" msgstr "" -#: ckanext/canada/templates/user/login.html:39 +#: ckanext/canada/templates/user/login.html:36 msgid "Reset password" msgstr "" -#: ckanext/canada/templates/user/login.html:47 +#: ckanext/canada/templates/user/login.html:44 msgid "Forgotten your username?" msgstr "" -#: ckanext/canada/templates/user/login.html:50 +#: ckanext/canada/templates/user/login.html:47 msgid "No problem, use our username recovery form to recover it" msgstr "" -#: ckanext/canada/templates/user/login.html:52 +#: ckanext/canada/templates/user/login.html:49 msgid "Recover username" msgstr "" -#: ckanext/canada/templates/user/login.html:67 +#: ckanext/canada/templates/user/login.html:64 msgid " Create an Account" msgstr "" -#: ckanext/canada/templates/user/login.html:77 +#: ckanext/canada/templates/user/login.html:74 msgid "Forgot your password?" msgstr "" -#: ckanext/canada/templates/user/logout.html:4 +#: ckanext/canada/templates/user/logout.html:6 msgid "You are now logged out." msgstr "" @@ -3395,49 +3488,49 @@ msgid "" "Registry." msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:5 -#: ckanext/canada/templates/user/new_user_form.html:16 +#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:17 msgid "Please fill out this field." msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/new_user_form.html:9 msgid "" "Use only lowercase letters (a-z) and numbers (0-9) with optional hyphens (-) " "and underscores (_). Example: joe-bloggs" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:11 msgid "Full Name" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:11 +#: ckanext/canada/templates/user/new_user_form.html:12 msgid "Example: Joe Bloggs" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/new_user_form.html:15 msgid "Example: joe.bloggs@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:18 +#: ckanext/canada/templates/user/new_user_form.html:19 msgid "Phone Number" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:19 +#: ckanext/canada/templates/user/new_user_form.html:20 msgid "Example: 000 000 0000" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/new_user_form.html:23 msgid "" "Password must be 12 characters or longer, and must consist of at least three " "of the following character sets: uppercase characters, lowercase characters, " "digits, punctuation & special characters" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:25 +#: ckanext/canada/templates/user/new_user_form.html:26 msgid "The password must match" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:28 +#: ckanext/canada/templates/user/new_user_form.html:29 msgid "" "

Terms and Conditions for the Open Government Registry

Privacy" " Statement

The Government of Canada is committed to providing " @@ -3518,63 +3611,67 @@ msgid "" " Registry.

" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:72 +#: ckanext/canada/templates/user/new_user_form.html:73 msgid "I agree" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:73 +#: ckanext/canada/templates/user/new_user_form.html:74 msgid "I do not agree" msgstr "" #: ckanext/canada/templates/user/read_base.html:14 -msgid "Edit User" +msgid "API Tokens" msgstr "" -#: ckanext/canada/templates/user/read_base.html:22 +#: ckanext/canada/templates/user/read_base.html:17 +msgid "MFA" +msgstr "" + +#: ckanext/canada/templates/user/read_base.html:24 msgid "Details" msgstr "" -#: ckanext/canada/templates/user/read_base.html:32 +#: ckanext/canada/templates/user/read_base.html:36 msgid "Followers:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:36 -msgid "Edits:" +#: ckanext/canada/templates/user/read_base.html:40 +msgid "Datasets:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:50 +#: ckanext/canada/templates/user/read_base.html:48 msgid "Open ID:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:53 +#: ckanext/canada/templates/user/read_base.html:51 msgid "Username:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "This means only you can see this" msgstr "" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "Private" msgstr "" -#: ckanext/canada/templates/user/read_base.html:66 +#: ckanext/canada/templates/user/read_base.html:64 msgid "Member Since" msgstr "" -#: ckanext/canada/templates/user/read_base.html:72 -#: ckanext/canada/templates/user/read_base.html:80 +#: ckanext/canada/templates/user/read_base.html:70 +#: ckanext/canada/templates/user/read_base.html:78 msgid "API Key" msgstr "" -#: ckanext/canada/templates/user/read_base.html:75 +#: ckanext/canada/templates/user/read_base.html:73 msgid "Show API Key" msgstr "" -#: ckanext/canada/templates/user/read_base.html:81 -#: ckanext/canada/templates/user/read_base.html:87 +#: ckanext/canada/templates/user/read_base.html:79 +#: ckanext/canada/templates/user/read_base.html:85 msgid "Close" msgstr "" @@ -3586,21 +3683,47 @@ msgstr "" msgid "Username Recovery" msgstr "" -#: ckanext/canada/templates/user/recover_username.html:20 +#: ckanext/canada/templates/user/recover_username.html:22 msgid "Request Recovery" msgstr "" +#: ckanext/canada/templates/user/snippets/login_form.html:10 +msgid "Login failed. Incorrect username or password." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:13 +msgid "Invalid code, please try again." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:16 +msgid "An unknown error occurred." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:30 +msgid "NOTE: Username and password are case sensitive." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:42 +msgid "Please enter your authenticator app generated 6-digit verification code." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:43 +msgid "Verification code" +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:47 +msgid "Need help?" +msgstr "" + #: ckanext/canada/templates/user/snippets/user_search.html:2 -#: ckanext/canada/templates/user/snippets/user_search.html:5 -#: ckanext/canada/templates/user/snippets/user_search.html:6 msgid "Search Users" msgstr "" -#: ckanext/canada/templates/xloader/resource_data.html:10 -msgid "Delete DataStore table" +#: ckanext/canada/templates/user/snippets/user_search.html:6 +msgid "Search users..." msgstr "" -#: ckanext/canada/templates/xloader/resource_data.html:22 +#: ckanext/canada/templates/xloader/resource_data.html:8 msgid "Upload to DataStore" msgstr "" diff --git a/ckanext/canada/i18n/en/LC_MESSAGES/ckanext-canada.po b/ckanext/canada/i18n/en/LC_MESSAGES/ckanext-canada.po index a55ea97a3..e8cd7e782 100644 --- a/ckanext/canada/i18n/en/LC_MESSAGES/ckanext-canada.po +++ b/ckanext/canada/i18n/en/LC_MESSAGES/ckanext-canada.po @@ -7,27 +7,52 @@ msgid "" msgstr "" "Project-Id-Version: CKAN\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-10 13:40+0000\n" +"POT-Creation-Date: 2024-10-29 13:19+0000\n" "PO-Revision-Date: 2014-01-23 13:04+0000\n" "Last-Translator: Sean Hammond \n" "Language: en\n" "Language-Team: English (Canada) " "(http://www.transifex.com/projects/p/ckan/language/en_CA/)\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.7.0\n" +"Generated-By: Babel 2.10.3\n" -#: ckanext/canada/assets/internal/validation_spec.js:8 -#: ckanext/canada/checks.py:25 +#: ckanext/canada/checks.py:11 +msgid "Invalid Header for DataStore" +msgstr "" + +#: ckanext/canada/checks.py:12 +msgid "" +"Column name is invalid for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Remove any leading underscores('_') from the column name.\n" +" - Remove any leading or trailing white space from the column name.\n" +" - Remove any double quotes('\"') from the column name.\n" +" - Make sure the column name is not blank." +msgstr "" + +#: ckanext/canada/checks.py:13 ckanext/canada/checks.py:35 msgid "" "Column name {value} in column {column_number} is not valid for a " "DataStore header" msgstr "" -#: ckanext/canada/assets/internal/validation_spec.js:16 -#: ckanext/canada/checks.py:30 +#: ckanext/canada/checks.py:18 +msgid "Header Too Long for DataStore" +msgstr "" + +#: ckanext/canada/checks.py:19 +msgid "" +"Column name is too long for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Make the column name at most 63 characters long." +msgstr "" + +#: ckanext/canada/checks.py:20 ckanext/canada/checks.py:43 msgid "" "Column name {value} in column {column_number} is too long for a DataStore" " header" @@ -108,52 +133,52 @@ msgstr "" msgid "Invalid business number" msgstr "" -#: ckanext/canada/helpers.py:288 ckanext/canada/helpers.py:289 +#: ckanext/canada/helpers.py:289 ckanext/canada/helpers.py:290 msgid "Treasury Board of Canada Secretariat" msgstr "" -#: ckanext/canada/helpers.py:540 +#: ckanext/canada/helpers.py:541 msgid "search-staging.open.canada.ca" msgstr "" -#: ckanext/canada/helpers.py:541 +#: ckanext/canada/helpers.py:542 msgid "search.open.canada.ca" msgstr "" -#: ckanext/canada/helpers.py:587 ckanext/canada/strings.py:13 -#: ckanext/canada/view.py:1196 +#: ckanext/canada/helpers.py:588 ckanext/canada/strings.py:13 +#: ckanext/canada/view.py:1162 msgid "Members not found" msgstr "" -#: ckanext/canada/helpers.py:713 +#: ckanext/canada/helpers.py:711 msgid "Data awaiting load to DataStore" msgstr "" -#: ckanext/canada/helpers.py:714 +#: ckanext/canada/helpers.py:712 msgid "Loading data into DataStore" msgstr "" -#: ckanext/canada/helpers.py:715 +#: ckanext/canada/helpers.py:713 msgid "Data loaded into DataStore" msgstr "" -#: ckanext/canada/helpers.py:716 +#: ckanext/canada/helpers.py:714 msgid "Failed to load data into DataStore" msgstr "" -#: ckanext/canada/helpers.py:717 +#: ckanext/canada/helpers.py:715 msgid "Data available in DataStore" msgstr "" -#: ckanext/canada/helpers.py:718 +#: ckanext/canada/helpers.py:716 msgid "Resource not active in DataStore" msgstr "" -#: ckanext/canada/helpers.py:719 +#: ckanext/canada/helpers.py:717 msgid "DataStore status unknown" msgstr "" -#: ckanext/canada/helpers.py:786 +#: ckanext/canada/helpers.py:784 #: ckanext/canada/templates/home/quick_links.html:65 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:28 #: ckanext/canada/templates/snippets/cdts/header.html:31 @@ -163,7 +188,7 @@ msgstr "" msgid "Open Data" msgstr "" -#: ckanext/canada/helpers.py:787 +#: ckanext/canada/helpers.py:785 #: ckanext/canada/templates/home/quick_links.html:79 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:30 #: ckanext/canada/templates/snippets/cdts/header.html:54 @@ -173,122 +198,125 @@ msgstr "" msgid "Open Information" msgstr "" -#: ckanext/canada/helpers.py:796 -#: ckanext/canada/templates/snippets/dataset_facets.html:26 +#: ckanext/canada/helpers.py:794 +#: ckanext/canada/templates/snippets/dataset_facets.html:27 msgid "Request sent to data owner - awaiting response" msgstr "" -#: ckanext/canada/helpers.py:800 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:798 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Pending" msgstr "" -#: ckanext/canada/helpers.py:801 ckanext/canada/templates/package/read.html:15 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:799 ckanext/canada/templates/package/read.html:14 +#: ckanext/canada/templates/snippets/package_item.html:33 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Draft" msgstr "" -#: ckanext/canada/helpers.py:810 +#: ckanext/canada/helpers.py:808 #: ckanext/canada/templates/home/quick_links.html:133 #: ckanext/canada/templates/snippets/cdts/header.html:57 -#: ckanext/canada/templates/snippets/dataset_facets.html:31 +#: ckanext/canada/templates/snippets/dataset_facets.html:33 #: ckanext/canada/templates/snippets/package_item.html:15 #: ckanext/canada/templates/snippets/package_item.html:21 msgid "Proactive Publication" msgstr "" -#: ckanext/canada/helpers.py:832 -#: ckanext/canada/templates/snippets/publish_facet.html:24 +#: ckanext/canada/helpers.py:830 +#: ckanext/canada/templates/snippets/publish_facet.html:25 msgid "Published" msgstr "" -#: ckanext/canada/helpers.py:834 -#: ckanext/canada/templates/snippets/publish_facet.html:33 +#: ckanext/canada/helpers.py:832 +#: ckanext/canada/templates/snippets/publish_facet.html:34 msgid "Scheduled" msgstr "" -#: ckanext/canada/helpers.py:869 +#: ckanext/canada/helpers.py:867 msgid "Registry Home" msgstr "" -#: ckanext/canada/helpers.py:874 +#: ckanext/canada/helpers.py:872 msgid "Open Government" msgstr "" -#: ckanext/canada/helpers.py:877 -#: ckanext/canada/templates/admin/publish_search.html:18 +#: ckanext/canada/helpers.py:875 +#: ckanext/canada/templates/admin/publish_search.html:19 #: ckanext/canada/templates/home/quick_links.html:104 -#: ckanext/canada/templates/organization/snippets/organization_search.html:7 +#: ckanext/canada/templates/organization/snippets/organization_search.html:8 #: ckanext/canada/templates/snippets/cdts/header.html:150 -#: ckanext/canada/templates/snippets/search_form.html:44 +#: ckanext/canada/templates/snippets/search_form.html:45 +#: ckanext/canada/templates/user/snippets/user_search.html:10 msgid "Search" msgstr "" -#: ckanext/canada/logic.py:296 +#: ckanext/canada/logic.py:297 msgid "Could not determine a resource format. Please supply a format." msgstr "" -#: ckanext/canada/logic.py:457 +#: ckanext/canada/logic.py:458 msgid "Unknown Job" msgstr "" -#: ckanext/canada/plugins.py:703 +#: ckanext/canada/plugins.py:734 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:25 msgid "Portal Type" msgstr "" -#: ckanext/canada/plugins.py:704 +#: ckanext/canada/plugins.py:735 #: ckanext/canada/templates/package/deleted.html:14 -#: ckanext/canada/templates/user/new_user_form.html:17 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Organization" msgstr "" -#: ckanext/canada/plugins.py:705 +#: ckanext/canada/plugins.py:736 msgid "Collection Type" msgstr "" -#: ckanext/canada/plugins.py:706 ckanext/canada/plugins.py:707 +#: ckanext/canada/plugins.py:737 ckanext/canada/plugins.py:738 msgid "Keywords" msgstr "" -#: ckanext/canada/plugins.py:708 +#: ckanext/canada/plugins.py:739 msgid "Subject" msgstr "" -#: ckanext/canada/plugins.py:709 +#: ckanext/canada/plugins.py:740 +#: ckanext/canada/templates/package/snippets/resource_info.html:13 #: ckanext/canada/templates/tabledesigner/view_snippets/cra_business_number.html:1 msgid "Format" msgstr "" -#: ckanext/canada/plugins.py:710 +#: ckanext/canada/plugins.py:741 msgid "Resource Type" msgstr "" -#: ckanext/canada/plugins.py:711 +#: ckanext/canada/plugins.py:742 msgid "Maintenance and Update Frequency" msgstr "" -#: ckanext/canada/plugins.py:712 +#: ckanext/canada/plugins.py:743 msgid "Record Status" msgstr "" -#: ckanext/canada/plugins.py:713 +#: ckanext/canada/plugins.py:744 msgid "IMSO Approval" msgstr "" -#: ckanext/canada/plugins.py:714 +#: ckanext/canada/plugins.py:745 msgid "Jurisdiction" msgstr "" -#: ckanext/canada/plugins.py:715 +#: ckanext/canada/plugins.py:746 msgid "Suggestion Status" msgstr "" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Previous" msgstr "" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Next" msgstr "" @@ -301,45 +329,46 @@ msgstr "" msgid "Not authorized to access {group} members download" msgstr "" -#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1206 +#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1172 msgid "N/A" msgstr "" #: ckanext/canada/strings.py:15 -#: ckanext/canada/templates/organization/member_new.html:30 -#: ckanext/canada/templates/user/edit_user_form.html:7 +#: ckanext/canada/templates/organization/member_new.html:31 +#: ckanext/canada/templates/user/edit_user_form.html:8 #: ckanext/canada/templates/user/list.html:44 -#: ckanext/canada/templates/user/new_user_form.html:7 -#: ckanext/canada/templates/user/snippets/login_form.html:11 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/snippets/login_form.html:32 +#: ckanext/canada/view.py:1164 msgid "Username" msgstr "" #: ckanext/canada/strings.py:16 -#: ckanext/canada/templates/user/edit_user_form.html:9 -#: ckanext/canada/templates/user/new_user_form.html:13 -#: ckanext/canada/templates/user/read_base.html:60 -#: ckanext/canada/templates/user/recover_username.html:15 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/read_base.html:58 +#: ckanext/canada/templates/user/recover_username.html:17 +#: ckanext/canada/view.py:1164 msgid "Email" msgstr "" -#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:5 -#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1198 +#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:7 +#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1164 msgid "Name" msgstr "" #: ckanext/canada/strings.py:18 -#: ckanext/canada/templates/organization/member_new.html:57 -#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1198 +#: ckanext/canada/templates/organization/member_new.html:58 +#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1164 msgid "Role" msgstr "" -#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1216 +#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1182 msgid "members" msgstr "" #: ckanext/canada/strings.py:20 +#: ckanext/canada/templates/organization/manage_members.html:7 #: ckanext/canada/templates/organization/members.html:32 msgid "CSV" msgstr "" @@ -403,210 +432,260 @@ msgid "Choose format" msgstr "" #: ckanext/canada/strings.py:35 +#: ckanext/canada/templates/user/snippets/login_form.html:48 msgid "Submit" msgstr "" #: ckanext/canada/strings.py:36 -#: ckanext/canada/templates/snippets/activities/deleted_resource_view.html:8 -msgid "{actor} deleted the {view_type} view {view}" +msgid "{actor} added the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:37 -msgid "Request Reset" +msgid "{actor} changed the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:38 -#: ckanext/canada/templates/user/edit_user_form.html:47 -msgid "Create API Token" +msgid "{actor} deleted the {view_type} view {view}" msgstr "" #: ckanext/canada/strings.py:39 -msgid "Token" +msgid "Request Reset" msgstr "" #: ckanext/canada/strings.py:40 -msgid "Last access" +#: ckanext/canada/templates/user/edit_user_form.html:48 +msgid "Create API Token" msgstr "" #: ckanext/canada/strings.py:41 -msgid "Actions" +msgid "Token" msgstr "" #: ckanext/canada/strings.py:42 -msgid "Revoke" +msgid "Last access" msgstr "" #: ckanext/canada/strings.py:43 -msgid "You haven't created any API Tokens." +msgid "Actions" msgstr "" #: ckanext/canada/strings.py:44 -msgid "Beta" +#: ckanext/canada/templates/user/snippets/api_token_list.html:8 +msgid "Revoke" msgstr "" #: ckanext/canada/strings.py:45 +msgid "You haven't created any API Tokens." +msgstr "" + +#: ckanext/canada/strings.py:46 +msgid "Beta" +msgstr "" + +#: ckanext/canada/strings.py:47 #, python-format msgid "Deleted API token %s" msgstr "" -#: ckanext/canada/strings.py:46 +#: ckanext/canada/strings.py:48 msgid "Organization created." msgstr "" -#: ckanext/canada/strings.py:47 +#: ckanext/canada/strings.py:49 msgid "Group created." msgstr "" -#: ckanext/canada/strings.py:48 +#: ckanext/canada/strings.py:50 msgid "Organization updated." msgstr "" -#: ckanext/canada/strings.py:49 +#: ckanext/canada/strings.py:51 msgid "Group updated." msgstr "" -#: ckanext/canada/strings.py:50 +#: ckanext/canada/strings.py:52 #, python-format msgid "Assigned %s as a member." msgstr "" -#: ckanext/canada/strings.py:51 +#: ckanext/canada/strings.py:53 #, python-format msgid "Assigned %s as an editor." msgstr "" -#: ckanext/canada/strings.py:52 +#: ckanext/canada/strings.py:54 #, python-format msgid "Assigned %s as an admin." msgstr "" -#: ckanext/canada/strings.py:53 +#: ckanext/canada/strings.py:55 msgid "View deleted." msgstr "" -#: ckanext/canada/strings.py:54 +#: ckanext/canada/strings.py:56 msgid "View updated." msgstr "" -#: ckanext/canada/strings.py:55 +#: ckanext/canada/strings.py:57 msgid "View created." msgstr "" -#: ckanext/canada/strings.py:56 +#: ckanext/canada/strings.py:58 msgid "Promoted {} to sysadmin" msgstr "" -#: ckanext/canada/strings.py:57 +#: ckanext/canada/strings.py:59 msgid "Revoked sysadmin permission from {}" msgstr "" -#: ckanext/canada/strings.py:58 +#: ckanext/canada/strings.py:60 msgid "Current Sysadmins" msgstr "" -#: ckanext/canada/strings.py:59 +#: ckanext/canada/strings.py:61 msgid "Revoke Sysadmin permission" msgstr "" -#: ckanext/canada/strings.py:60 +#: ckanext/canada/strings.py:62 msgid "Promote user to Sysadmin" msgstr "" -#: ckanext/canada/strings.py:61 +#: ckanext/canada/strings.py:63 msgid "Promote" msgstr "" -#: ckanext/canada/strings.py:62 +#: ckanext/canada/strings.py:64 msgid "Cannot modify your own sysadmin privileges" msgstr "" -#: ckanext/canada/strings.py:63 +#: ckanext/canada/strings.py:65 msgid "Cannot modify sysadmin privileges for system user" msgstr "" -#: ckanext/canada/strings.py:64 -#: ckanext/canada/templates/snippets/facet_list.html:43 -#: ckanext/canada/templates/snippets/facet_list.html:44 +#: ckanext/canada/strings.py:66 +msgid "Activity type" +msgstr "" + +#: ckanext/canada/strings.py:67 +#: ckanext/canada/templates/snippets/facet_list.html:47 +#: ckanext/canada/templates/snippets/facet_list.html:48 msgid "Show more" msgstr "" -#: ckanext/canada/strings.py:65 +#: ckanext/canada/strings.py:68 msgid "Hide" msgstr "" -#: ckanext/canada/strings.py:66 -msgid "" -"You can use Markdown " -"formatting here" +#: ckanext/canada/strings.py:69 +#, python-format +msgid "User %s deleted. You are now logged out." msgstr "" -#: ckanext/canada/strings.py:67 -msgid "" -"

__bold text__

_italic text_

* list
* of
* " -"items

1. numbered
2. list
3. of " -"items

https://auto.link.ed/

[Formatted " -"Link](https://formatted.link)

> block quote

Please note: HTML tags are stripped out for security" -" reasons

" +#: ckanext/canada/strings.py:70 +#, python-format +msgid "User %s deleted." msgstr "" -#: ckanext/canada/strings.py:70 +#: ckanext/canada/strings.py:73 msgid "Please upload a file or link to an external resource" msgstr "" -#: ckanext/canada/strings.py:71 +#: ckanext/canada/strings.py:74 msgid "Cannot upload files of this type" msgstr "" -#: ckanext/canada/strings.py:72 +#: ckanext/canada/strings.py:75 msgid "Cannot link files of this type" msgstr "" -#: ckanext/canada/strings.py:73 +#: ckanext/canada/strings.py:76 msgid "Your password must be {} characters or longer." msgstr "" -#: ckanext/canada/strings.py:74 +#: ckanext/canada/strings.py:77 msgid "" "Your password must consist of at least three of the following character " "sets: uppercase characters, lowercase characters, digits, punctuation & " "special characters." msgstr "" -#: ckanext/canada/strings.py:76 +#: ckanext/canada/strings.py:79 msgid "Your password cannot be the same as your username." msgstr "" -#: ckanext/canada/strings.py:79 +#: ckanext/canada/strings.py:81 +msgid "" +"Your current password is too weak. Please create a new password before " +"logging in again." +msgstr "" + +#: ckanext/canada/strings.py:84 msgid "These fields have been removed, click update below to save your changes." msgstr "These fields will be removed once you save your changes." -#: ckanext/canada/strings.py:80 +#: ckanext/canada/strings.py:85 msgid "These fields have been removed." msgstr "" -#: ckanext/canada/strings.py:83 +#: ckanext/canada/strings.py:88 msgid "Your form submission could not be validated, please re-submit the form." msgstr "" -#: ckanext/canada/strings.py:86 +#: ckanext/canada/strings.py:91 msgid "Open Government Portal" msgstr "" -#: ckanext/canada/strings.py:87 +#: ckanext/canada/strings.py:92 msgid "Open Government Portal (staging)" msgstr "" -#: ckanext/canada/strings.py:90 +#: ckanext/canada/strings.py:95 +msgid "Delete from DataStore" +msgstr "" + +#: ckanext/canada/strings.py:96 +msgid "Are you sure you want to delete the DataStore and Data Dictionary?" +msgstr "" + +#: ckanext/canada/strings.py:97 +#: ckanext/canada/templates/organization/confirm_delete_member.html:3 +#: ckanext/canada/templates/organization/confirm_delete_member.html:14 +#: ckanext/canada/templates/package/confirm_delete.html:3 +#: ckanext/canada/templates/package/confirm_delete.html:13 +#: ckanext/canada/templates/package/confirm_delete_resource.html:3 +#: ckanext/canada/templates/package/confirm_delete_resource.html:13 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:41 +#: ckanext/canada/templates/user/confirm_delete.html:3 +#: ckanext/canada/templates/user/confirm_delete.html:14 +msgid "Confirm Delete" +msgstr "" + +#: ckanext/canada/strings.py:100 +msgid "Validation Information" +msgstr "" + +#: ckanext/canada/strings.py:101 +msgid "Validation status:" +msgstr "" + +#: ckanext/canada/strings.py:102 +msgid "Validation timestamp:" +msgstr "" + +#: ckanext/canada/strings.py:103 +msgid "Duration:" +msgstr "" + +#: ckanext/canada/strings.py:106 msgid "Single" msgstr "" -#: ckanext/canada/strings.py:91 +#: ckanext/canada/strings.py:107 msgid "Repeatable" msgstr "" -#: ckanext/canada/strings.py:92 +#: ckanext/canada/strings.py:108 msgid "Optional" msgstr "" @@ -639,7 +718,7 @@ msgstr "" msgid "Badly formed hexadecimal UUID string" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:7 #: ckanext/canada/validators.py:198 ckanext/canada/validators.py:200 msgid "Please enter a valid email address." msgstr "" @@ -683,160 +762,148 @@ msgstr "" msgid "Invalid value for a digital object identifier." msgstr "" -#: ckanext/canada/view.py:101 +#: ckanext/canada/view.py:103 msgid "Note
{0} is now logged in" msgstr "" -#: ckanext/canada/view.py:111 +#: ckanext/canada/view.py:113 msgid "Login failed. Bad username or password." msgstr "" -#: ckanext/canada/view.py:159 +#: ckanext/canada/view.py:161 msgid "" "The status has been added/updated for this suggested dataset. This update" " will be reflected on open.canada.ca shortly." msgstr "" -#: ckanext/canada/view.py:162 +#: ckanext/canada/view.py:164 #, python-format msgid "Your dataset %s has been saved." msgstr "" -#: ckanext/canada/view.py:172 +#: ckanext/canada/view.py:174 msgid "Dataset added." msgstr "" -#: ckanext/canada/view.py:181 +#: ckanext/canada/view.py:183 msgid "Resource updated." msgstr "" -#: ckanext/canada/view.py:190 +#: ckanext/canada/view.py:192 msgid "Resource added." msgstr "" -#: ckanext/canada/view.py:245 +#: ckanext/canada/view.py:247 msgid "Unauthorized to request username recovery." msgstr "" -#: ckanext/canada/view.py:250 +#: ckanext/canada/view.py:252 msgid "Email is required" msgstr "" -#: ckanext/canada/view.py:275 +#: ckanext/canada/view.py:277 msgid "" "Error sending the email. Try again later or contact an administrator for " "help" msgstr "" -#: ckanext/canada/view.py:282 +#: ckanext/canada/view.py:284 msgid "" "An email has been sent to you containing your username(s). (unless the " "account specified does not exist)" msgstr "" -#: ckanext/canada/view.py:360 +#: ckanext/canada/view.py:362 msgid "Unauthorized to create a resource for this package" msgstr "" -#: ckanext/canada/view.py:397 ckanext/canada/view.py:408 +#: ckanext/canada/view.py:399 ckanext/canada/view.py:410 msgid "This record already exists" msgstr "" -#: ckanext/canada/view.py:405 ckanext/canada/view.py:413 +#: ckanext/canada/view.py:407 ckanext/canada/view.py:415 msgid "Something went wrong, your record was not created. Please contact support." msgstr "" -#: ckanext/canada/view.py:428 +#: ckanext/canada/view.py:430 msgid "Record Created" msgstr "" -#: ckanext/canada/view.py:466 +#: ckanext/canada/view.py:468 msgid "Unauthorized to update dataset" msgstr "" -#: ckanext/canada/view.py:476 ckanext/canada/view.py:617 -#: ckanext/canada/view.py:652 +#: ckanext/canada/view.py:478 ckanext/canada/view.py:619 +#: ckanext/canada/view.py:654 msgid "Not found" msgstr "" -#: ckanext/canada/view.py:478 +#: ckanext/canada/view.py:480 msgid "Multiple records found" msgstr "" -#: ckanext/canada/view.py:515 +#: ckanext/canada/view.py:517 msgid "Something went wrong, your record was not updated. Please contact support." msgstr "" -#: ckanext/canada/view.py:531 +#: ckanext/canada/view.py:533 #, python-format msgid "Record %s Updated" msgstr "" -#: ckanext/canada/view.py:570 +#: ckanext/canada/view.py:572 msgid "No organizations found" msgstr "" -#: ckanext/canada/view.py:574 +#: ckanext/canada/view.py:576 msgid "Recombinant resource_name not found" msgstr "" -#: ckanext/canada/view.py:608 +#: ckanext/canada/view.py:610 msgid "User {0} not authorized to update resource {1}" msgstr "" -#: ckanext/canada/view.py:663 +#: ckanext/canada/view.py:665 msgid "{num} deleted." msgstr "" #. SQL Trigger String for PD Type: service -#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:705 +#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:707 msgid "Number required" msgstr "" -#: ckanext/canada/view.py:710 +#: ckanext/canada/view.py:712 msgid "Integer required" msgstr "" -#: ckanext/canada/view.py:746 ckanext/canada/view.py:754 -#: ckanext/canada/view.py:788 +#: ckanext/canada/view.py:748 ckanext/canada/view.py:756 +#: ckanext/canada/view.py:790 msgid "Not authorized to see this page" msgstr "" -#: ckanext/canada/view.py:774 +#: ckanext/canada/view.py:776 msgid " record(s) published." msgstr "" -#: ckanext/canada/view.py:812 -#, python-format -msgid "Unauthorized to delete resource %s" -msgstr "" - -#: ckanext/canada/view.py:814 -#, python-format -msgid "DataStore table and Data Dictionary deleted for resource %s" -msgstr "" - -#: ckanext/canada/templates/organization/edit_base.html:31 -#: ckanext/canada/templates/organization/read_base.html:35 #: ckanext/canada/templates/organization/snippets/organization_item.html:16 #: ckanext/canada/templates/package/edit.html:4 #: ckanext/canada/templates/package/edit.html:8 #: ckanext/canada/templates/package/resource_edit.html:3 #: ckanext/canada/templates/package/resource_edit_base.html:7 #: ckanext/canada/templates/package/wet_datatable.html:15 -#: ckanext/canada/view.py:908 +#: ckanext/canada/view.py:874 msgid "Edit" msgstr "" -#: ckanext/canada/view.py:1041 +#: ckanext/canada/view.py:1007 msgid "Access denied" msgstr "" -#: ckanext/canada/view.py:1092 +#: ckanext/canada/view.py:1058 msgid "Account Created" msgstr "" -#: ckanext/canada/view.py:1094 +#: ckanext/canada/view.py:1060 msgid "" "Thank you for creating your account for the Open Government registry. " "Although your account is active, it has not yet been linked to your " @@ -844,7 +911,7 @@ msgid "" "be able to create or modify datasets in the registry." msgstr "" -#: ckanext/canada/view.py:1101 +#: ckanext/canada/view.py:1067 msgid "" "You should receive an email within the next business day once the account" " activation process has been completed. If you require faster processing " @@ -852,51 +919,24 @@ msgid "" ":open-ouvert@tbs-sct.gc.ca\">open-ouvert@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/view.py:1175 ckanext/canada/view.py:1253 +#: ckanext/canada/view.py:1141 ckanext/canada/view.py:1219 msgid "Organization not found" msgstr "" -#: ckanext/canada/view.py:1186 +#: ckanext/canada/view.py:1152 msgid "Not authorized to access {org_name} members download" msgstr "" -#: ckanext/canada/view.py:1256 +#: ckanext/canada/view.py:1222 #, python-format msgid "User %r not authorized to edit members of %s" msgstr "" -#: ckanext/canada/view.py:1258 +#: ckanext/canada/view.py:1224 #, python-format msgid "User %r not authorized to view members of %s" msgstr "" -#: ckanext/canada/assets/internal/validation_spec.js:7 -msgid "Invalid Header for DataStore" -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:9 -msgid "" -"Column name is invalid for a DataStore header.\n" -"\n" -" How it could be resolved:\n" -" - Remove any leading underscores('_') from the column name.\n" -" - Remove any leading or trailing white space from the column name.\n" -" - Remove any double quotes('\"') from the column name.\n" -" - Make sure the column name is not blank." -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:15 -msgid "Header Too Long for DataStore" -msgstr "" - -#: ckanext/canada/assets/internal/validation_spec.js:17 -msgid "" -"Column name is too long for a DataStore header.\n" -"\n" -" How it could be resolved:\n" -" - Make the column name at most 63 characters long." -msgstr "" - #. Title for PD Type: adminaircraft #. Resource Title for PD Type: adminaircraft #: ckanext/canada/tables/adminaircraft.yaml:5 @@ -1557,7 +1597,7 @@ msgstr "" #: ckanext/canada/templates/error_document_template.html:33 #: ckanext/canada/templates/page.html:29 -#: ckanext/canada/templates/user/snippets/login_form.html:16 +#: ckanext/canada/templates/user/snippets/login_form.html:37 msgid "Log in" msgstr "" @@ -1573,7 +1613,7 @@ msgstr "" #: ckanext/canada/templates/help.html:4 #: ckanext/canada/templates/organization/about.html:4 #: ckanext/canada/templates/page.html:61 -#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/edit_user_form.html:11 msgid "About" msgstr "" @@ -1938,7 +1978,7 @@ msgid "Users" msgstr "" #: ckanext/canada/templates/admin/base.html:15 -#: ckanext/canada/templates/admin/trash.html:31 +#: ckanext/canada/templates/admin/trash.html:13 msgid "Trash" msgstr "Deleted Records" @@ -1993,48 +2033,44 @@ msgstr "" msgid "Search Datasets" msgstr "Search Records" -#: ckanext/canada/templates/admin/publish_search.html:14 +#: ckanext/canada/templates/admin/publish_search.html:15 msgid "Search datasets..." msgstr "Search records..." -#: ckanext/canada/templates/admin/publish_search.html:52 +#: ckanext/canada/templates/admin/publish_search.html:58 #: ckanext/canada/templates/scheming/form_snippets/repeating_subfields.html:8 -#: ckanext/canada/templates/snippets/search_form.html:82 +#: ckanext/canada/templates/snippets/search_form.html:88 msgid "Remove" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:62 +#: ckanext/canada/templates/admin/publish_search.html:68 msgid "

Please try another search.

" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:69 +#: ckanext/canada/templates/admin/publish_search.html:75 msgid "" "

There was an error while searching. Please try " "again.

" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 msgid "Search Filters" msgstr "" -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 -#: ckanext/canada/templates/snippets/facet_list.html:56 -#: ckanext/canada/templates/snippets/facet_list.html:57 -#: ckanext/canada/templates/snippets/publish_facet.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:63 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 +#: ckanext/canada/templates/snippets/facet_list.html:61 +#: ckanext/canada/templates/snippets/facet_list.html:62 +#: ckanext/canada/templates/snippets/publish_facet.html:60 +#: ckanext/canada/templates/snippets/publish_facet.html:61 msgid "Clear All" msgstr "" -#: ckanext/canada/templates/admin/trash.html:20 -msgid "Purge" +#: ckanext/canada/templates/admin/trash.html:17 +msgid "Purge deleted datasets, organizations or groups forever and irreversibly." msgstr "" -#: ckanext/canada/templates/admin/trash.html:35 -msgid "

Purge deleted datasets forever and irreversibly.

" -msgstr "

Purge deleted records forever and irreversibly.

" - #: ckanext/canada/templates/admin/snippets/package_item.html:8 msgid "Publish?" msgstr "" @@ -2054,37 +2090,6 @@ msgstr "" msgid "Publish Selected Records" msgstr "" -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:3 -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:13 -#: ckanext/canada/templates/organization/confirm_delete_member.html:3 -#: ckanext/canada/templates/organization/confirm_delete_member.html:13 -#: ckanext/canada/templates/package/confirm_delete.html:3 -#: ckanext/canada/templates/package/confirm_delete.html:12 -#: ckanext/canada/templates/package/confirm_delete_resource.html:3 -#: ckanext/canada/templates/package/confirm_delete_resource.html:12 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 -#: ckanext/canada/templates/user/confirm_delete.html:3 -#: ckanext/canada/templates/user/confirm_delete.html:13 -msgid "Confirm Delete" -msgstr "" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:8 -#: ckanext/canada/templates/xloader/resource_data.html:9 -msgid "Are you sure you want to delete this DataStore table and Data Dictionary?" -msgstr "" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:12 -#: ckanext/canada/templates/organization/confirm_delete_member.html:12 -#: ckanext/canada/templates/package/confirm_delete.html:11 -#: ckanext/canada/templates/package/confirm_delete_resource.html:11 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:39 -#: ckanext/canada/templates/recombinant/create_pd_record.html:86 -#: ckanext/canada/templates/recombinant/update_pd_record.html:89 -#: ckanext/canada/templates/user/confirm_delete.html:12 -msgid "Cancel" -msgstr "" - #: ckanext/canada/templates/datastore/snippets/dictionary_form.html:7 msgid "English Label" msgstr "" @@ -2246,14 +2251,31 @@ msgid "" "appearance for your deputy head." msgstr "" +#: ckanext/canada/templates/macros/form/markdown.html:27 +msgid "" +"

__bold text__

_italic text_

* list
* of
* " +"items

1. numbered
2. list
3. of " +"items

https://auto.link.ed/

[Formatted " +"Link](https://formatted.link)

> block quote

Please note: HTML tags are stripped out for security" +" reasons

" +msgstr "" + +#: ckanext/canada/templates/macros/form/markdown.html:33 +msgid "" +"You can use Markdown formatting here" +msgstr "" + #: ckanext/canada/templates/organization/activity_stream.html:4 -#: ckanext/canada/templates/package/read_base.html:23 +#: ckanext/canada/templates/package/read_base.html:27 #: ckanext/canada/templates/user/activity_stream.html:12 msgid "Activity Stream" msgstr "" #: ckanext/canada/templates/organization/activity_stream.html:11 -#: ckanext/canada/templates/package/read_base.html:150 +#: ckanext/canada/templates/package/read_base.html:154 msgid "Atom Feed" msgstr "" @@ -2261,26 +2283,53 @@ msgstr "" msgid "Are you sure you want to delete member - {name}?" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:15 -#: ckanext/canada/templates/organization/read_base.html:24 -#: ckanext/canada/templates/package/search.html:16 -#: ckanext/canada/templates/snippets/organization.html:37 -#: ckanext/canada/templates/user/read.html:21 -msgid "Datasets" -msgstr "Records" +#: ckanext/canada/templates/organization/confirm_delete_member.html:13 +#: ckanext/canada/templates/package/confirm_delete.html:12 +#: ckanext/canada/templates/package/confirm_delete_resource.html:12 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 +#: ckanext/canada/templates/recombinant/create_pd_record.html:87 +#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/user/confirm_delete.html:13 +msgid "Cancel" +msgstr "" + +#: ckanext/canada/templates/organization/edit.html:6 +#: ckanext/canada/templates/organization/edit_base.html:10 +#: ckanext/canada/templates/user/edit.html:7 +msgid "Manage" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:8 +#: ckanext/canada/templates/organization/index.html:26 +#: ckanext/canada/templates/organization/members.html:10 +#: ckanext/canada/templates/organization/read_base.html:7 +#: ckanext/canada/templates/snippets/cdts/header.html:154 +#: ckanext/canada/templates/user/read.html:28 +#: ckanext/canada/templates/user/read_base.html:12 +#: ckanext/canada/templates/user/read_base.html:97 +msgid "Organizations" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:19 +msgid "View Organization" +msgstr "" + +#: ckanext/canada/templates/organization/edit_base.html:26 +msgid "Edit Organization" +msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:18 -#: ckanext/canada/templates/organization/read_base.html:27 +#: ckanext/canada/templates/organization/edit_base.html:28 +#: ckanext/canada/templates/organization/read_base.html:21 msgid "Activity" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:22 -#: ckanext/canada/templates/organization/read_base.html:31 +#: ckanext/canada/templates/organization/edit_base.html:30 +#: ckanext/canada/templates/organization/read_base.html:23 msgid "Edit Members" msgstr "" -#: ckanext/canada/templates/organization/edit_base.html:26 -#: ckanext/canada/templates/organization/read_base.html:40 +#: ckanext/canada/templates/organization/edit_base.html:32 +#: ckanext/canada/templates/organization/read_base.html:25 msgid "View Members" msgstr "" @@ -2292,15 +2341,6 @@ msgstr "" msgid "How about creating one?" msgstr "" -#: ckanext/canada/templates/organization/index.html:26 -#: ckanext/canada/templates/organization/members.html:10 -#: ckanext/canada/templates/organization/read_base.html:6 -#: ckanext/canada/templates/snippets/cdts/header.html:154 -#: ckanext/canada/templates/user/read.html:28 -#: ckanext/canada/templates/user/read_base.html:99 -msgid "Organizations" -msgstr "" - #: ckanext/canada/templates/organization/member_new.html:9 msgid "Back to all members" msgstr "" @@ -2310,54 +2350,54 @@ msgid "Edit Member" msgstr "" #: ckanext/canada/templates/organization/member_new.html:11 -#: ckanext/canada/templates/organization/member_new.html:66 +#: ckanext/canada/templates/organization/member_new.html:67 msgid "Add Member" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:19 +#: ckanext/canada/templates/organization/member_new.html:20 msgid "Existing User" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:22 +#: ckanext/canada/templates/organization/member_new.html:23 msgid "If you wish to add an existing user, search for their username below." msgstr "" -#: ckanext/canada/templates/organization/member_new.html:38 +#: ckanext/canada/templates/organization/member_new.html:39 msgid "or" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:44 +#: ckanext/canada/templates/organization/member_new.html:45 msgid "New User" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:47 +#: ckanext/canada/templates/organization/member_new.html:48 msgid "If you wish to invite a new user, enter their email address." msgstr "" -#: ckanext/canada/templates/organization/member_new.html:50 +#: ckanext/canada/templates/organization/member_new.html:51 msgid "Email address" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 msgid "Are you sure you want to delete this member?" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 #: ckanext/canada/templates/scheming/package/read.html:26 #: ckanext/canada/templates/scheming/snippets/form_field.html:21 -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Delete" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:62 +#: ckanext/canada/templates/organization/member_new.html:63 msgid "Update Member" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:78 +#: ckanext/canada/templates/organization/member_new.html:79 msgid "What are roles?" msgstr "" -#: ckanext/canada/templates/organization/member_new.html:81 +#: ckanext/canada/templates/organization/member_new.html:82 msgid "" "

Admin: Can add/edit and delete datasets, as well as " "manage organization members.

Editor: Can add and " @@ -2376,9 +2416,13 @@ msgstr "" msgid "Members" msgstr "" -#: ckanext/canada/templates/organization/read.html:12 -msgid "Edit Organization" -msgstr "" +#: ckanext/canada/templates/organization/read_base.html:20 +#: ckanext/canada/templates/package/search.html:16 +#: ckanext/canada/templates/snippets/organization.html:37 +#: ckanext/canada/templates/user/read.html:21 +#: ckanext/canada/templates/user/read_base.html:11 +msgid "Datasets" +msgstr "Records" #: ckanext/canada/templates/organization/snippets/helper.html:2 msgid "What are Organizations?" @@ -2410,7 +2454,10 @@ msgstr[1] "{num} Records" msgid "0 Datasets" msgstr "0 Records" -#: ckanext/canada/templates/organization/snippets/organization_search.html:3 +#: ckanext/canada/templates/organization/snippets/organization_search.html:4 +#: ckanext/canada/templates/recombinant/snippets/org_select.html:18 +#: ckanext/canada/templates/scheming/form_snippets/organization_autocomplete.html:26 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Search organizations..." msgstr "" @@ -2455,64 +2502,55 @@ msgstr "" msgid "Disabled" msgstr "" -#: ckanext/canada/templates/package/read.html:18 -#: ckanext/canada/templates/package/read.html:101 +#: ckanext/canada/templates/package/read.html:17 +#: ckanext/canada/templates/package/read.html:93 #: ckanext/canada/templates/package/snippets/resource_item.html:12 #: ckanext/canada/templates/scheming/display_snippets/fluent_tags.html:8 -#: ckanext/canada/templates/snippets/package_item.html:37 -#: ckanext/canada/templates/snippets/package_item.html:56 +#: ckanext/canada/templates/snippets/package_item.html:39 +#: ckanext/canada/templates/snippets/package_item.html:55 msgid "" "This third party metadata element has been translated using an automated " "translation tool. To report any discrepancies please contact open-ouvert" "@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/templates/package/read.html:24 -#: ckanext/canada/templates/package/resource_read.html:23 -#, python-format -msgid "" -"You're currently viewing an old version of this dataset. Some resources " -"may no longer exist or the dataset may not display correctly. To see the " -"current version, click here." -msgstr "" - +#: ckanext/canada/templates/package/read.html:39 #: ckanext/canada/templates/package/read.html:47 -#: ckanext/canada/templates/package/read.html:55 msgid "Action required:" msgstr "" -#: ckanext/canada/templates/package/read.html:48 +#: ckanext/canada/templates/package/read.html:40 msgid "" "Draft record has been saved and can be edited. Mark as ready to publish " "to continue." msgstr "" -#: ckanext/canada/templates/package/read.html:56 +#: ckanext/canada/templates/package/read.html:48 msgid "Seek out departmental approval and mark as approved to continue." msgstr "" -#: ckanext/canada/templates/package/read.html:63 +#: ckanext/canada/templates/package/read.html:55 msgid "Data record is in queue for validation." msgstr "" -#: ckanext/canada/templates/package/read.html:64 +#: ckanext/canada/templates/package/read.html:56 msgid "Record will be published by the following business day upon validation." msgstr "" -#: ckanext/canada/templates/package/read.html:82 -#: ckanext/canada/templates/package/read.html:83 +#: ckanext/canada/templates/package/read.html:74 +#: ckanext/canada/templates/package/read.html:75 msgid "View on Portal" msgstr "" -#: ckanext/canada/templates/package/read.html:89 +#: ckanext/canada/templates/package/read.html:81 msgid "This dataset has been deleted and is no longer accessible" msgstr "" -#: ckanext/canada/templates/package/read.html:112 +#: ckanext/canada/templates/package/read.html:104 msgid "Made available by the " msgstr "" -#: ckanext/canada/templates/package/read.html:114 +#: ckanext/canada/templates/package/read.html:106 msgid "" "

These resources are not under the control of the Government of Canada " "and the link is provided solely for the convenience of our website " @@ -2531,154 +2569,166 @@ msgid "" "information.

" msgstr "" -#: ckanext/canada/templates/package/read.html:129 -#: ckanext/canada/templates/package/read.html:152 -#: ckanext/canada/templates/package/read_base.html:56 -#: ckanext/canada/templates/package/read_base.html:65 -#: ckanext/canada/templates/package/read_base.html:81 -#: ckanext/canada/templates/package/read_base.html:155 -#: ckanext/canada/templates/package/read_base.html:187 -#: ckanext/canada/templates/recombinant/create_pd_record.html:29 -#: ckanext/canada/templates/recombinant/update_pd_record.html:29 -#: ckanext/canada/templates/snippets/package_item.html:91 +#: ckanext/canada/templates/package/read.html:121 +#: ckanext/canada/templates/package/read.html:144 +#: ckanext/canada/templates/package/read_base.html:60 +#: ckanext/canada/templates/package/read_base.html:69 +#: ckanext/canada/templates/package/read_base.html:85 +#: ckanext/canada/templates/package/read_base.html:159 +#: ckanext/canada/templates/package/read_base.html:191 +#: ckanext/canada/templates/recombinant/create_pd_record.html:30 +#: ckanext/canada/templates/recombinant/update_pd_record.html:30 +#: ckanext/canada/templates/snippets/package_item.html:90 msgid ":" msgstr "" -#: ckanext/canada/templates/package/read.html:150 +#: ckanext/canada/templates/package/read.html:142 msgid "Issued by" msgstr "" -#: ckanext/canada/templates/package/read.html:177 +#: ckanext/canada/templates/package/read.html:169 msgid "Related Items" msgstr "" -#: ckanext/canada/templates/package/read.html:191 +#: ckanext/canada/templates/package/read.html:183 msgid "Contact Information" msgstr "" -#: ckanext/canada/templates/package/read.html:193 +#: ckanext/canada/templates/package/read.html:185 msgid "Delivery Point:" msgstr "" -#: ckanext/canada/templates/package/read.html:196 +#: ckanext/canada/templates/package/read.html:188 msgid "City:" msgstr "" -#: ckanext/canada/templates/package/read.html:199 +#: ckanext/canada/templates/package/read.html:191 msgid "Administrative Area:" msgstr "" -#: ckanext/canada/templates/package/read.html:202 +#: ckanext/canada/templates/package/read.html:194 msgid "Postal Code:" msgstr "" -#: ckanext/canada/templates/package/read.html:205 +#: ckanext/canada/templates/package/read.html:197 msgid "Country:" msgstr "" -#: ckanext/canada/templates/package/read.html:208 +#: ckanext/canada/templates/package/read.html:200 msgid "Electronic Mail Address:" msgstr "" -#: ckanext/canada/templates/package/read.html:230 +#: ckanext/canada/templates/package/read.html:222 msgid "Similar records" msgstr "" -#: ckanext/canada/templates/package/read_base.html:18 +#: ckanext/canada/templates/package/read_base.html:22 msgid "Dataset" msgstr "" -#: ckanext/canada/templates/package/read_base.html:41 +#: ckanext/canada/templates/package/read_base.html:45 #: ckanext/canada/templates/scheming/package/resource_read.html:9 msgid "Additional Information" msgstr "" -#: ckanext/canada/templates/package/read_base.html:65 +#: ckanext/canada/templates/package/read_base.html:69 msgid "Temporal Coverage" msgstr "" -#: ckanext/canada/templates/package/read_base.html:68 +#: ckanext/canada/templates/package/read_base.html:72 msgid "to" msgstr "" -#: ckanext/canada/templates/package/read_base.html:70 +#: ckanext/canada/templates/package/read_base.html:74 msgid "to undefined" msgstr "" -#: ckanext/canada/templates/package/read_base.html:72 +#: ckanext/canada/templates/package/read_base.html:76 msgid "undefined to" msgstr "" -#: ckanext/canada/templates/package/read_base.html:81 +#: ckanext/canada/templates/package/read_base.html:85 msgid "Openness Rating" msgstr "" -#: ckanext/canada/templates/package/read_base.html:86 +#: ckanext/canada/templates/package/read_base.html:90 msgid "one star" msgstr "" -#: ckanext/canada/templates/package/read_base.html:87 +#: ckanext/canada/templates/package/read_base.html:91 msgid "two stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:88 +#: ckanext/canada/templates/package/read_base.html:92 msgid "three stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:89 +#: ckanext/canada/templates/package/read_base.html:93 msgid "four stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:90 +#: ckanext/canada/templates/package/read_base.html:94 msgid "five stars" msgstr "" -#: ckanext/canada/templates/package/read_base.html:101 +#: ckanext/canada/templates/package/read_base.html:105 msgid "About this Record" msgstr "" -#: ckanext/canada/templates/package/read_base.html:105 +#: ckanext/canada/templates/package/read_base.html:109 msgid "Record Released:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:109 +#: ckanext/canada/templates/package/read_base.html:113 msgid "Record Modified:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:113 +#: ckanext/canada/templates/package/read_base.html:117 msgid "Record ID:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:117 +#: ckanext/canada/templates/package/read_base.html:121 msgid "Metadata:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:121 +#: ckanext/canada/templates/package/read_base.html:125 msgid "Link to JSON format" msgstr "" -#: ckanext/canada/templates/package/read_base.html:127 +#: ckanext/canada/templates/package/read_base.html:131 msgid "DCAT (JSON-LD)" msgstr "" -#: ckanext/canada/templates/package/read_base.html:134 +#: ckanext/canada/templates/package/read_base.html:138 msgid "DCAT (XML)" msgstr "" -#: ckanext/canada/templates/package/read_base.html:142 +#: ckanext/canada/templates/package/read_base.html:146 msgid "FGP Metadata:" msgstr "" -#: ckanext/canada/templates/package/read_base.html:144 +#: ckanext/canada/templates/package/read_base.html:148 msgid "HNAP ISO:19115 Metadata Record" msgstr "" -#: ckanext/canada/templates/package/resource_edit.html:12 +#: ckanext/canada/templates/package/resource_edit.html:11 msgid "Go back" msgstr "" -#: ckanext/canada/templates/package/resource_read.html:58 -#: ckanext/canada/templates/package/snippets/resource_item.html:73 +#: ckanext/canada/templates/package/resource_edit_base.html:12 +msgid "All resources" +msgstr "" + +#: ckanext/canada/templates/package/resource_edit_base.html:14 +msgid "View resource" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:62 +msgid "List of downloadable formats" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:64 +#: ckanext/canada/templates/package/snippets/resource_item.html:81 msgid "Download" msgstr "" @@ -2691,11 +2741,23 @@ msgstr "" msgid "Search Open Government" msgstr "" -#: ckanext/canada/templates/package/search.html:49 +#: ckanext/canada/templates/package/search.html:37 +msgid "License" +msgstr "" + +#: ckanext/canada/templates/package/search.html:57 msgid "Please review your spelling, or reduce the number of filters selected." msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:63 +#: ckanext/canada/templates/package/view_edit_base.html:4 +msgid "All views" +msgstr "" + +#: ckanext/canada/templates/package/view_edit_base.html:7 +msgid "View view" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:71 #: ckanext/canada/templates/package/wet_datatable.html:9 msgid "Preview" msgstr "" @@ -2761,38 +2823,71 @@ msgstr "" msgid "Data API" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:56 +#: ckanext/canada/templates/package/snippets/resource_info.html:8 +msgid "Additional Information " +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_info.html:40 +#: ckanext/canada/templates/package/snippets/resource_item.html:34 +#: ckanext/canada/templates/package/snippets/resources.html:51 +#, python-format +msgid "+ %s more" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:64 msgid "Explore" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:65 +#: ckanext/canada/templates/package/snippets/resource_item.html:73 msgid "More information" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:75 +#: ckanext/canada/templates/package/snippets/resource_item.html:83 msgid "Go to resource" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:84 +#: ckanext/canada/templates/package/snippets/resource_item.html:92 #: ckanext/canada/templates/package/snippets/resources_list.html:9 #: ckanext/canada/templates/snippets/search_form.html:34 msgid "View on Map" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:89 -#: ckanext/canada/templates/package/snippets/resources.html:25 +#: ckanext/canada/templates/package/snippets/resource_item.html:97 +#: ckanext/canada/templates/package/snippets/resources.html:21 msgid "Edit resource" msgstr "" -#: ckanext/canada/templates/package/snippets/resource_item.html:91 +#: ckanext/canada/templates/package/snippets/resource_item.html:99 #: ckanext/canada/templates/package/snippets/resources.html:27 msgid "Views" msgstr "" +#: ckanext/canada/templates/package/snippets/resource_item.html:101 +#: ckanext/canada/templates/package/snippets/resources.html:29 +msgid "Are you sure you want to delete this resource?" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:102 +#: ckanext/canada/templates/package/snippets/resources.html:30 +msgid "Delete resource" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:24 +msgid "DataStore" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:25 +msgid "Data Dictionary" +msgstr "" + #: ckanext/canada/templates/package/snippets/resources_list.html:4 msgid "Data and Resources" msgstr "" +#: ckanext/canada/templates/package/snippets/resources_list.html:16 +msgid "Add new resource" +msgstr "" + #: ckanext/canada/templates/package/snippets/schemaorg.html:3 msgid "Government of Canada Open Government Portal" msgstr "" @@ -2885,19 +2980,19 @@ msgstr[1] "" msgid "Create Record" msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:24 -#: ckanext/canada/templates/recombinant/update_pd_record.html:24 +#: ckanext/canada/templates/recombinant/create_pd_record.html:25 +#: ckanext/canada/templates/recombinant/update_pd_record.html:25 #: ckanext/canada/templates/scheming/snippets/errors.html:6 msgid "The form contains invalid entries:" msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:54 -#: ckanext/canada/templates/recombinant/update_pd_record.html:57 +#: ckanext/canada/templates/recombinant/create_pd_record.html:55 +#: ckanext/canada/templates/recombinant/update_pd_record.html:58 msgid "You may select or deselect multiple entries (Ctrl+Click)." msgstr "" -#: ckanext/canada/templates/recombinant/create_pd_record.html:87 -#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/recombinant/create_pd_record.html:88 +#: ckanext/canada/templates/recombinant/update_pd_record.html:91 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:63 msgid "Save" msgstr "" @@ -2919,11 +3014,15 @@ msgid "" "Information Coordinator." msgstr "" -#: ckanext/canada/templates/recombinant/resource_edit.html:39 +#: ckanext/canada/templates/recombinant/resource_edit.html:70 +msgid "Info" +msgstr "" + +#: ckanext/canada/templates/recombinant/resource_edit.html:77 msgid "Guide" msgstr "" -#: ckanext/canada/templates/recombinant/resource_edit.html:43 +#: ckanext/canada/templates/recombinant/resource_edit.html:81 #, python-format msgid "" "For information on how to prepare, maintain and upload templates to the " @@ -3004,6 +3103,16 @@ msgstr "" msgid "Image" msgstr "" +#: ckanext/canada/templates/scheming/organization/group_form.html:6 +#: ckanext/canada/templates/scheming/organization/group_form.html:8 +msgid "Update Organization" +msgstr "" + +#: ckanext/canada/templates/scheming/organization/group_form.html:12 +#: ckanext/canada/templates/scheming/organization/group_form.html:14 +msgid "Create Organization" +msgstr "" + #: ckanext/canada/templates/scheming/package/snippets/package_form.html:14 msgid "Catalogue Metadata" msgstr "" @@ -3089,8 +3198,16 @@ msgstr "" msgid "New activity item" msgstr "" -#: ckanext/canada/templates/snippets/activity_stream.html:8 -msgid "View the past 30 days of activity." +#: ckanext/canada/templates/snippets/activity_type_selector.html:12 +msgid "created datastore" +msgstr "" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:15 +msgid "changed datastore" +msgstr "" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:18 +msgid "deleted datastore" msgstr "" #: ckanext/canada/templates/snippets/dataset_facets.html:6 @@ -3098,13 +3215,13 @@ msgstr "" msgid "Suggested Datasets" msgstr "" -#: ckanext/canada/templates/snippets/facet_list.html:49 -#: ckanext/canada/templates/snippets/facet_list.html:50 +#: ckanext/canada/templates/snippets/facet_list.html:53 +#: ckanext/canada/templates/snippets/facet_list.html:54 msgid "Show less" msgstr "" -#: ckanext/canada/templates/snippets/facet_list.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:68 +#: ckanext/canada/templates/snippets/facet_list.html:68 +#: ckanext/canada/templates/snippets/publish_facet.html:67 msgid "There are no filters for this search" msgstr "" @@ -3112,32 +3229,36 @@ msgstr "" msgid "read more" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:60 +#: ckanext/canada/templates/snippets/package_item.html:35 +msgid "Deleted" +msgstr "" + +#: ckanext/canada/templates/snippets/package_item.html:59 msgid "This dataset has no description" msgstr "This record has no description" -#: ckanext/canada/templates/snippets/package_item.html:67 +#: ckanext/canada/templates/snippets/package_item.html:66 msgid "Organization:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:78 +#: ckanext/canada/templates/snippets/package_item.html:77 msgid "Issued by:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:100 -#: ckanext/canada/templates/snippets/package_item.html:117 +#: ckanext/canada/templates/snippets/package_item.html:99 +#: ckanext/canada/templates/snippets/package_item.html:116 msgid "Status:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:108 +#: ckanext/canada/templates/snippets/package_item.html:107 msgid "Date:" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:120 +#: ckanext/canada/templates/snippets/package_item.html:119 msgid "Request sent to data owner – awaiting response" msgstr "" -#: ckanext/canada/templates/snippets/package_item.html:127 +#: ckanext/canada/templates/snippets/package_item.html:128 msgid "Resource Formats:" msgstr "" @@ -3190,12 +3311,8 @@ msgstr "" msgid "Relevance" msgstr "" -#: ckanext/canada/templates/snippets/activities/changed_resource_view.html:8 -msgid "{actor} changed the {view_type} view {view}" -msgstr "" - -#: ckanext/canada/templates/snippets/activities/new_resource_view.html:8 -msgid "{actor} added the {view_type} view {view}" +#: ckanext/canada/templates/snippets/stream.html:8 +msgid "View the past 30 days of activity." msgstr "" #: ckanext/canada/templates/snippets/cdts/header.html:21 @@ -3208,10 +3325,8 @@ msgid "FAQ" msgstr "" #: ckanext/canada/templates/snippets/cdts/header.html:189 -#: ckanext/canada/templates/user/dashboard.html:4 -#: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 +#: ckanext/canada/templates/user/dashboard.html:9 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "Dashboard" msgstr "" @@ -3243,44 +3358,23 @@ msgstr "" msgid "Are you sure you want to delete user - {name}?" msgstr "" -#: ckanext/canada/templates/user/dashboard.html:4 +#: ckanext/canada/templates/user/dashboard.html:9 #: ckanext/canada/templates/user/dashboard.html:13 -#: ckanext/canada/templates/user/dashboard.html:37 -msgid "News feed" -msgstr "" - -#: ckanext/canada/templates/user/dashboard.html:16 -msgid "Activity from items that you follow" +#: ckanext/canada/templates/user/dashboard.html:18 +#: ckanext/canada/templates/user/dashboard.html:22 +msgid "My Activity" msgstr "" -#: ckanext/canada/templates/user/dashboard.html:30 -msgid "Add Dataset" -msgstr "Add Record" - -#: ckanext/canada/templates/user/dashboard.html:38 +#: ckanext/canada/templates/user/dashboard.html:23 msgid "My Datasets" msgstr "My Records" -#: ckanext/canada/templates/user/dashboard_datasets.html:11 +#: ckanext/canada/templates/user/dashboard_datasets.html:10 #: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_datasets.html:22 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "My Records" msgstr "" -#: ckanext/canada/templates/user/dashboard_groups.html:5 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -msgid "My Groups" -msgstr "" - -#: ckanext/canada/templates/user/dashboard_organizations.html:5 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 -msgid "My Organizations" -msgstr "" - -#: ckanext/canada/templates/user/edit.html:7 -msgid "Manage" -msgstr "" - #: ckanext/canada/templates/user/edit_base.html:7 msgid "Edit My Profile" msgstr "" @@ -3289,35 +3383,35 @@ msgstr "" msgid "Edit Profile" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:6 +#: ckanext/canada/templates/user/edit_user_form.html:7 msgid "Change details" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "Full name" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "eg. Joe Bloggs" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:9 +#: ckanext/canada/templates/user/edit_user_form.html:10 msgid "eg. joe@example.com" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/edit_user_form.html:11 msgid "A little information about yourself" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:13 msgid "Subscribe to notification emails" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:19 +#: ckanext/canada/templates/user/edit_user_form.html:20 msgid "Change password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:22 +#: ckanext/canada/templates/user/edit_user_form.html:23 #: ckanext/canada/templates/user/perform_reset.html:8 msgid "password reset requirements" msgstr "" @@ -3329,30 +3423,30 @@ msgstr "" "characters are permitted.
  • All passwords must be at least 8 " "characters long.
  • Password does not equal username.
  • " -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Sysadmin Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Old Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:35 -#: ckanext/canada/templates/user/new_user_form.html:21 -#: ckanext/canada/templates/user/snippets/login_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:36 +#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/snippets/login_form.html:33 msgid "Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:36 -#: ckanext/canada/templates/user/new_user_form.html:24 +#: ckanext/canada/templates/user/edit_user_form.html:37 +#: ckanext/canada/templates/user/new_user_form.html:25 msgid "Confirm Password" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Are you sure you want to delete this User?" msgstr "" -#: ckanext/canada/templates/user/edit_user_form.html:50 +#: ckanext/canada/templates/user/edit_user_form.html:51 msgid "Update Profile" msgstr "" @@ -3412,56 +3506,52 @@ msgstr "" "implement a process to force users to change their password to meet the " "new requirements before they can access the Registry.

    " -#: ckanext/canada/templates/user/login.html:12 -msgid "NOTE: Username and password are case sensitive." -msgstr "" - -#: ckanext/canada/templates/user/login.html:24 +#: ckanext/canada/templates/user/login.html:21 msgid "Need an account" msgstr "" -#: ckanext/canada/templates/user/login.html:27 +#: ckanext/canada/templates/user/login.html:24 msgid "Then sign right up, it only takes a minute" msgstr "" -#: ckanext/canada/templates/user/login.html:29 +#: ckanext/canada/templates/user/login.html:26 #: ckanext/canada/templates/user/new.html:5 msgid "Request an Account" msgstr "" -#: ckanext/canada/templates/user/login.html:35 +#: ckanext/canada/templates/user/login.html:32 msgid "Forgotten your password?" msgstr "" -#: ckanext/canada/templates/user/login.html:37 +#: ckanext/canada/templates/user/login.html:34 msgid "No problem, use our password recovery form to reset it" msgstr "" -#: ckanext/canada/templates/user/login.html:39 +#: ckanext/canada/templates/user/login.html:36 msgid "Reset password" msgstr "" -#: ckanext/canada/templates/user/login.html:47 +#: ckanext/canada/templates/user/login.html:44 msgid "Forgotten your username?" msgstr "" -#: ckanext/canada/templates/user/login.html:50 +#: ckanext/canada/templates/user/login.html:47 msgid "No problem, use our username recovery form to recover it" msgstr "" -#: ckanext/canada/templates/user/login.html:52 +#: ckanext/canada/templates/user/login.html:49 msgid "Recover username" msgstr "" -#: ckanext/canada/templates/user/login.html:67 +#: ckanext/canada/templates/user/login.html:64 msgid " Create an Account" msgstr "" -#: ckanext/canada/templates/user/login.html:77 +#: ckanext/canada/templates/user/login.html:74 msgid "Forgot your password?" msgstr "" -#: ckanext/canada/templates/user/logout.html:4 +#: ckanext/canada/templates/user/logout.html:6 msgid "You are now logged out." msgstr "" @@ -3491,49 +3581,49 @@ msgid "" "adding records to the Registry." msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:5 -#: ckanext/canada/templates/user/new_user_form.html:16 +#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:17 msgid "Please fill out this field." msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/new_user_form.html:9 msgid "" "Use only lowercase letters (a-z) and numbers (0-9) with optional hyphens " "(-) and underscores (_). Example: joe-bloggs" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:11 msgid "Full Name" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:11 +#: ckanext/canada/templates/user/new_user_form.html:12 msgid "Example: Joe Bloggs" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/new_user_form.html:15 msgid "Example: joe.bloggs@tbs-sct.gc.ca" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:18 +#: ckanext/canada/templates/user/new_user_form.html:19 msgid "Phone Number" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:19 +#: ckanext/canada/templates/user/new_user_form.html:20 msgid "Example: 000 000 0000" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/new_user_form.html:23 msgid "" "Password must be 12 characters or longer, and must consist of at least " "three of the following character sets: uppercase characters, lowercase " "characters, digits, punctuation & special characters" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:25 +#: ckanext/canada/templates/user/new_user_form.html:26 msgid "The password must match" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:28 +#: ckanext/canada/templates/user/new_user_form.html:29 msgid "" "

    Terms and Conditions for the Open Government Registry

    " "

    Privacy Statement

    The Government of Canada is " @@ -3619,63 +3709,67 @@ msgid "" "have access to the Registry.

    " msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:72 +#: ckanext/canada/templates/user/new_user_form.html:73 msgid "I agree" msgstr "" -#: ckanext/canada/templates/user/new_user_form.html:73 +#: ckanext/canada/templates/user/new_user_form.html:74 msgid "I do not agree" msgstr "" #: ckanext/canada/templates/user/read_base.html:14 -msgid "Edit User" +msgid "API Tokens" msgstr "" -#: ckanext/canada/templates/user/read_base.html:22 +#: ckanext/canada/templates/user/read_base.html:17 +msgid "MFA" +msgstr "" + +#: ckanext/canada/templates/user/read_base.html:24 msgid "Details" msgstr "" -#: ckanext/canada/templates/user/read_base.html:32 +#: ckanext/canada/templates/user/read_base.html:36 msgid "Followers:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:36 -msgid "Edits:" +#: ckanext/canada/templates/user/read_base.html:40 +msgid "Datasets:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:50 +#: ckanext/canada/templates/user/read_base.html:48 msgid "Open ID:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:53 +#: ckanext/canada/templates/user/read_base.html:51 msgid "Username:" msgstr "" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "This means only you can see this" msgstr "" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "Private" msgstr "" -#: ckanext/canada/templates/user/read_base.html:66 +#: ckanext/canada/templates/user/read_base.html:64 msgid "Member Since" msgstr "" -#: ckanext/canada/templates/user/read_base.html:72 -#: ckanext/canada/templates/user/read_base.html:80 +#: ckanext/canada/templates/user/read_base.html:70 +#: ckanext/canada/templates/user/read_base.html:78 msgid "API Key" msgstr "" -#: ckanext/canada/templates/user/read_base.html:75 +#: ckanext/canada/templates/user/read_base.html:73 msgid "Show API Key" msgstr "" -#: ckanext/canada/templates/user/read_base.html:81 -#: ckanext/canada/templates/user/read_base.html:87 +#: ckanext/canada/templates/user/read_base.html:79 +#: ckanext/canada/templates/user/read_base.html:85 msgid "Close" msgstr "" @@ -3687,21 +3781,47 @@ msgstr "" msgid "Username Recovery" msgstr "" -#: ckanext/canada/templates/user/recover_username.html:20 +#: ckanext/canada/templates/user/recover_username.html:22 msgid "Request Recovery" msgstr "" +#: ckanext/canada/templates/user/snippets/login_form.html:10 +msgid "Login failed. Incorrect username or password." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:13 +msgid "Invalid code, please try again." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:16 +msgid "An unknown error occurred." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:30 +msgid "NOTE: Username and password are case sensitive." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:42 +msgid "Please enter your authenticator app generated 6-digit verification code." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:43 +msgid "Verification code" +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:47 +msgid "Need help?" +msgstr "" + #: ckanext/canada/templates/user/snippets/user_search.html:2 -#: ckanext/canada/templates/user/snippets/user_search.html:5 -#: ckanext/canada/templates/user/snippets/user_search.html:6 msgid "Search Users" msgstr "" -#: ckanext/canada/templates/xloader/resource_data.html:10 -msgid "Delete DataStore table" +#: ckanext/canada/templates/user/snippets/user_search.html:6 +msgid "Search users..." msgstr "" -#: ckanext/canada/templates/xloader/resource_data.html:22 +#: ckanext/canada/templates/xloader/resource_data.html:8 msgid "Upload to DataStore" msgstr "" @@ -8542,3 +8662,46 @@ msgstr "" #~ msgid "Invalid choice for" #~ msgstr "" +#~ msgid "" +#~ "You can use Markdown formatting here" +#~ msgstr "" + +#~ msgid "DataStore table and Data Dictionary deleted for resource %s" +#~ msgstr "" + +#~ msgid "Purge" +#~ msgstr "" + +#~ msgid "" +#~ "Are you sure you want to delete" +#~ " this DataStore table and Data " +#~ "Dictionary?" +#~ msgstr "" + +#~ msgid "" +#~ "You're currently viewing an old version" +#~ " of this dataset. Some resources may" +#~ " no longer exist or the dataset " +#~ "may not display correctly. To see " +#~ "the current version, click here." +#~ msgstr "" + +#~ msgid "News feed" +#~ msgstr "" + +#~ msgid "Activity from items that you follow" +#~ msgstr "" + +#~ msgid "Edit User" +#~ msgstr "" + +#~ msgid "Edits:" +#~ msgstr "" + +#~ msgid "Delete DataStore table" +#~ msgstr "" + diff --git a/ckanext/canada/i18n/fr/LC_MESSAGES/ckanext-canada.po b/ckanext/canada/i18n/fr/LC_MESSAGES/ckanext-canada.po index 3ead79fec..8bb3ead26 100644 --- a/ckanext/canada/i18n/fr/LC_MESSAGES/ckanext-canada.po +++ b/ckanext/canada/i18n/fr/LC_MESSAGES/ckanext-canada.po @@ -8,19 +8,41 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-10 13:40+0000\n" +"POT-Creation-Date: 2024-10-29 13:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: fr\n" "Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.7.0\n" +"Generated-By: Babel 2.10.3\n" -#: ckanext/canada/assets/internal/validation_spec.js:8 -#: ckanext/canada/checks.py:25 +#: ckanext/canada/checks.py:11 +msgid "Invalid Header for DataStore" +msgstr "En-tête invalide dans DataStore" + +#: ckanext/canada/checks.py:12 +msgid "" +"Column name is invalid for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Remove any leading underscores('_') from the column name.\n" +" - Remove any leading or trailing white space from the column name.\n" +" - Remove any double quotes('\"') from the column name.\n" +" - Make sure the column name is not blank." +msgstr "" +"Le nom de la colonne est invalide comme en-tête dans DataStore.\n" +"\n" +" Solution :\n" +" - Supprimez les traits de soulignement ('_') au début du nom de la " +"colonne.\n" +" - Supprimez les espaces au début et à la fin du nom de la colonne.\n" +" - Supprimez les guillemets ('\"') du nom de la colonne.\n" +" - Veillez à ce que le nom de la colonne soit indiqué." + +#: ckanext/canada/checks.py:13 ckanext/canada/checks.py:35 msgid "" "Column name {value} in column {column_number} is not valid for a " "DataStore header" @@ -28,8 +50,23 @@ msgstr "" "Le nom de la colonne {value} dans la colonne {column_number} est invalide" " comme en-tête dans DataStore" -#: ckanext/canada/assets/internal/validation_spec.js:16 -#: ckanext/canada/checks.py:30 +#: ckanext/canada/checks.py:18 +msgid "Header Too Long for DataStore" +msgstr "L'en-tête est trop long dans DataStore" + +#: ckanext/canada/checks.py:19 +msgid "" +"Column name is too long for a DataStore header.\n" +"\n" +" How it could be resolved:\n" +" - Make the column name at most 63 characters long." +msgstr "" +"Le nom de la colonne est trop long comme en-tête dans DataStore.\n" +"\n" +" Solution :\n" +" - Le nom de la colonne ne doit pas dépasser 63 caractères." + +#: ckanext/canada/checks.py:20 ckanext/canada/checks.py:43 msgid "" "Column name {value} in column {column_number} is too long for a DataStore" " header" @@ -117,53 +154,53 @@ msgstr "" msgid "Invalid business number" msgstr "Numéro d’entreprise non valide" -#: ckanext/canada/helpers.py:288 ckanext/canada/helpers.py:289 +#: ckanext/canada/helpers.py:289 ckanext/canada/helpers.py:290 msgid "Treasury Board of Canada Secretariat" msgstr "Secrétariat du Conseil du Trésor du Canada" -#: ckanext/canada/helpers.py:540 +#: ckanext/canada/helpers.py:541 msgid "search-staging.open.canada.ca" msgstr "stadification-rechercher.ouvert.canada.ca" -#: ckanext/canada/helpers.py:541 +#: ckanext/canada/helpers.py:542 msgid "search.open.canada.ca" msgstr "ouvert.canada.ca" -#: ckanext/canada/helpers.py:587 ckanext/canada/strings.py:13 -#: ckanext/canada/view.py:1196 +#: ckanext/canada/helpers.py:588 ckanext/canada/strings.py:13 +#: ckanext/canada/view.py:1162 msgid "Members not found" msgstr "Membres non trouvés" -#: ckanext/canada/helpers.py:713 +#: ckanext/canada/helpers.py:711 msgid "Data awaiting load to DataStore" msgstr "Le versement des données dans DataStore est en attente" -#: ckanext/canada/helpers.py:714 +#: ckanext/canada/helpers.py:712 msgid "Loading data into DataStore" msgstr "Le versement des données dans DataStore est en cours" -#: ckanext/canada/helpers.py:715 +#: ckanext/canada/helpers.py:713 msgid "Data loaded into DataStore" msgstr "Les données ont été versées dans DataStore" -#: ckanext/canada/helpers.py:716 +#: ckanext/canada/helpers.py:714 msgid "Failed to load data into DataStore" msgstr "Les données n'ont pas été versées dans DataStore" -#: ckanext/canada/helpers.py:717 +#: ckanext/canada/helpers.py:715 msgid "Data available in DataStore" msgstr "Les données sont disponibles dans DataStore" -#: ckanext/canada/helpers.py:718 +#: ckanext/canada/helpers.py:716 msgid "Resource not active in DataStore" msgstr "La ressource est inactive dans DataStore" -#: ckanext/canada/helpers.py:719 +#: ckanext/canada/helpers.py:717 msgid "DataStore status unknown" msgstr "L'état de DataStore est inconnu" # Search facets -#: ckanext/canada/helpers.py:786 +#: ckanext/canada/helpers.py:784 #: ckanext/canada/templates/home/quick_links.html:65 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:28 #: ckanext/canada/templates/snippets/cdts/header.html:31 @@ -173,7 +210,7 @@ msgstr "L'état de DataStore est inconnu" msgid "Open Data" msgstr "Données ouvertes" -#: ckanext/canada/helpers.py:787 +#: ckanext/canada/helpers.py:785 #: ckanext/canada/templates/home/quick_links.html:79 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:30 #: ckanext/canada/templates/snippets/cdts/header.html:54 @@ -183,124 +220,127 @@ msgstr "Données ouvertes" msgid "Open Information" msgstr "Information ouverte" -#: ckanext/canada/helpers.py:796 -#: ckanext/canada/templates/snippets/dataset_facets.html:26 +#: ckanext/canada/helpers.py:794 +#: ckanext/canada/templates/snippets/dataset_facets.html:27 msgid "Request sent to data owner - awaiting response" msgstr "Demande envoyée au propriétaire des données, en attente de réponse" -#: ckanext/canada/helpers.py:800 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:798 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Pending" msgstr "En attente" -#: ckanext/canada/helpers.py:801 ckanext/canada/templates/package/read.html:15 -#: ckanext/canada/templates/snippets/publish_facet.html:43 +#: ckanext/canada/helpers.py:799 ckanext/canada/templates/package/read.html:14 +#: ckanext/canada/templates/snippets/package_item.html:33 +#: ckanext/canada/templates/snippets/publish_facet.html:44 msgid "Draft" msgstr "Ébauche" -#: ckanext/canada/helpers.py:810 +#: ckanext/canada/helpers.py:808 #: ckanext/canada/templates/home/quick_links.html:133 #: ckanext/canada/templates/snippets/cdts/header.html:57 -#: ckanext/canada/templates/snippets/dataset_facets.html:31 +#: ckanext/canada/templates/snippets/dataset_facets.html:33 #: ckanext/canada/templates/snippets/package_item.html:15 #: ckanext/canada/templates/snippets/package_item.html:21 msgid "Proactive Publication" msgstr "Publication proactive" -#: ckanext/canada/helpers.py:832 -#: ckanext/canada/templates/snippets/publish_facet.html:24 +#: ckanext/canada/helpers.py:830 +#: ckanext/canada/templates/snippets/publish_facet.html:25 msgid "Published" msgstr "Publié" -#: ckanext/canada/helpers.py:834 -#: ckanext/canada/templates/snippets/publish_facet.html:33 +#: ckanext/canada/helpers.py:832 +#: ckanext/canada/templates/snippets/publish_facet.html:34 msgid "Scheduled" msgstr "Prévu" -#: ckanext/canada/helpers.py:869 +#: ckanext/canada/helpers.py:867 msgid "Registry Home" msgstr "Accueil du registre" -#: ckanext/canada/helpers.py:874 +#: ckanext/canada/helpers.py:872 msgid "Open Government" msgstr "Gouvernement ouvert" -#: ckanext/canada/helpers.py:877 -#: ckanext/canada/templates/admin/publish_search.html:18 +#: ckanext/canada/helpers.py:875 +#: ckanext/canada/templates/admin/publish_search.html:19 #: ckanext/canada/templates/home/quick_links.html:104 -#: ckanext/canada/templates/organization/snippets/organization_search.html:7 +#: ckanext/canada/templates/organization/snippets/organization_search.html:8 #: ckanext/canada/templates/snippets/cdts/header.html:150 -#: ckanext/canada/templates/snippets/search_form.html:44 +#: ckanext/canada/templates/snippets/search_form.html:45 +#: ckanext/canada/templates/user/snippets/user_search.html:10 msgid "Search" msgstr "Rechercher" -#: ckanext/canada/logic.py:296 +#: ckanext/canada/logic.py:297 msgid "Could not determine a resource format. Please supply a format." msgstr "" "Il est impossible de déterminer le format de la ressource. Veuillez " "indiquer un format." -#: ckanext/canada/logic.py:457 +#: ckanext/canada/logic.py:458 msgid "Unknown Job" msgstr "Tâche inconnue " -#: ckanext/canada/plugins.py:703 +#: ckanext/canada/plugins.py:734 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:25 msgid "Portal Type" msgstr "Type de portail" -#: ckanext/canada/plugins.py:704 +#: ckanext/canada/plugins.py:735 #: ckanext/canada/templates/package/deleted.html:14 -#: ckanext/canada/templates/user/new_user_form.html:17 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Organization" msgstr "Organisation" -#: ckanext/canada/plugins.py:705 +#: ckanext/canada/plugins.py:736 msgid "Collection Type" msgstr "Type de collection" -#: ckanext/canada/plugins.py:706 ckanext/canada/plugins.py:707 +#: ckanext/canada/plugins.py:737 ckanext/canada/plugins.py:738 msgid "Keywords" msgstr "Mots clés" -#: ckanext/canada/plugins.py:708 +#: ckanext/canada/plugins.py:739 msgid "Subject" msgstr "Sujet" -#: ckanext/canada/plugins.py:709 +#: ckanext/canada/plugins.py:740 +#: ckanext/canada/templates/package/snippets/resource_info.html:13 #: ckanext/canada/templates/tabledesigner/view_snippets/cra_business_number.html:1 msgid "Format" msgstr "Format" -#: ckanext/canada/plugins.py:710 +#: ckanext/canada/plugins.py:741 msgid "Resource Type" msgstr "Type de ressource" -#: ckanext/canada/plugins.py:711 +#: ckanext/canada/plugins.py:742 msgid "Maintenance and Update Frequency" msgstr "Fréquence d’entretien et de mise à jour" -#: ckanext/canada/plugins.py:712 +#: ckanext/canada/plugins.py:743 msgid "Record Status" msgstr "État du dossier" -#: ckanext/canada/plugins.py:713 +#: ckanext/canada/plugins.py:744 msgid "IMSO Approval" msgstr "Approbation du CSGI" -#: ckanext/canada/plugins.py:714 +#: ckanext/canada/plugins.py:745 msgid "Jurisdiction" msgstr "Juridiction" -#: ckanext/canada/plugins.py:715 +#: ckanext/canada/plugins.py:746 msgid "Suggestion Status" msgstr "État de la suggestion" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Previous" msgstr "Précédent" -#: ckanext/canada/plugins.py:904 +#: ckanext/canada/plugins.py:935 msgid "Next" msgstr "Suivant" @@ -313,45 +353,46 @@ msgstr "Créer un jeu de données" msgid "Not authorized to access {group} members download" msgstr "Non autorisé à accéder au téléchargement des membres du {group}" -#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1206 +#: ckanext/canada/strings.py:14 ckanext/canada/view.py:1172 msgid "N/A" msgstr "N/A" #: ckanext/canada/strings.py:15 -#: ckanext/canada/templates/organization/member_new.html:30 -#: ckanext/canada/templates/user/edit_user_form.html:7 +#: ckanext/canada/templates/organization/member_new.html:31 +#: ckanext/canada/templates/user/edit_user_form.html:8 #: ckanext/canada/templates/user/list.html:44 -#: ckanext/canada/templates/user/new_user_form.html:7 -#: ckanext/canada/templates/user/snippets/login_form.html:11 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/snippets/login_form.html:32 +#: ckanext/canada/view.py:1164 msgid "Username" msgstr "Nom d’utilisateur" #: ckanext/canada/strings.py:16 -#: ckanext/canada/templates/user/edit_user_form.html:9 -#: ckanext/canada/templates/user/new_user_form.html:13 -#: ckanext/canada/templates/user/read_base.html:60 -#: ckanext/canada/templates/user/recover_username.html:15 -#: ckanext/canada/view.py:1198 +#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/read_base.html:58 +#: ckanext/canada/templates/user/recover_username.html:17 +#: ckanext/canada/view.py:1164 msgid "Email" msgstr "Courriel" -#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:5 -#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1198 +#: ckanext/canada/strings.py:17 ckanext/canada/templates/user/api_tokens.html:7 +#: ckanext/canada/templates/user/list.html:45 ckanext/canada/view.py:1164 msgid "Name" msgstr "Nom" #: ckanext/canada/strings.py:18 -#: ckanext/canada/templates/organization/member_new.html:57 -#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1198 +#: ckanext/canada/templates/organization/member_new.html:58 +#: ckanext/canada/templates/user/list.html:46 ckanext/canada/view.py:1164 msgid "Role" msgstr "Rôle" -#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1216 +#: ckanext/canada/strings.py:19 ckanext/canada/view.py:1182 msgid "members" msgstr "membres" #: ckanext/canada/strings.py:20 +#: ckanext/canada/templates/organization/manage_members.html:7 #: ckanext/canada/templates/organization/members.html:32 msgid "CSV" msgstr "CSV" @@ -417,184 +458,179 @@ msgid "Choose format" msgstr "Choisir le format" #: ckanext/canada/strings.py:35 +#: ckanext/canada/templates/user/snippets/login_form.html:48 msgid "Submit" msgstr "Soumettre" #: ckanext/canada/strings.py:36 -#: ckanext/canada/templates/snippets/activities/deleted_resource_view.html:8 +msgid "{actor} added the {view_type} view {view}" +msgstr "{actor} a ajouté le {view_type} de l'affichage {view}" + +#: ckanext/canada/strings.py:37 +msgid "{actor} changed the {view_type} view {view}" +msgstr "{actor} a modifié le {view_type} de l'affichage {view}" + +#: ckanext/canada/strings.py:38 msgid "{actor} deleted the {view_type} view {view}" msgstr "{actor} a supprimé l’affichage {view_type} {view}" -#: ckanext/canada/strings.py:37 +#: ckanext/canada/strings.py:39 msgid "Request Reset" msgstr "Demander une réinitialisation" -#: ckanext/canada/strings.py:38 -#: ckanext/canada/templates/user/edit_user_form.html:47 +#: ckanext/canada/strings.py:40 +#: ckanext/canada/templates/user/edit_user_form.html:48 msgid "Create API Token" msgstr "Créer un jeton d’API" -#: ckanext/canada/strings.py:39 +#: ckanext/canada/strings.py:41 msgid "Token" msgstr "Jeton" -#: ckanext/canada/strings.py:40 +#: ckanext/canada/strings.py:42 msgid "Last access" msgstr "Dernière date d’accès" -#: ckanext/canada/strings.py:41 +#: ckanext/canada/strings.py:43 msgid "Actions" msgstr "Actions" -#: ckanext/canada/strings.py:42 +#: ckanext/canada/strings.py:44 +#: ckanext/canada/templates/user/snippets/api_token_list.html:8 msgid "Revoke" msgstr "Supprimer" -#: ckanext/canada/strings.py:43 +#: ckanext/canada/strings.py:45 msgid "You haven't created any API Tokens." msgstr "Vous n’avez créé aucun jeton d’API." -#: ckanext/canada/strings.py:44 +#: ckanext/canada/strings.py:46 msgid "Beta" msgstr "Bêta" -#: ckanext/canada/strings.py:45 +#: ckanext/canada/strings.py:47 #, python-format msgid "Deleted API token %s" msgstr "Jeton d’API supprimé %s" -#: ckanext/canada/strings.py:46 +#: ckanext/canada/strings.py:48 msgid "Organization created." msgstr "Organisation créée." -#: ckanext/canada/strings.py:47 +#: ckanext/canada/strings.py:49 msgid "Group created." msgstr "Groupe créé." -#: ckanext/canada/strings.py:48 +#: ckanext/canada/strings.py:50 msgid "Organization updated." msgstr "Organisation mise à jour." -#: ckanext/canada/strings.py:49 +#: ckanext/canada/strings.py:51 msgid "Group updated." msgstr "Groupe mis à jour." -#: ckanext/canada/strings.py:50 +#: ckanext/canada/strings.py:52 #, python-format msgid "Assigned %s as a member." msgstr "Nommé %s en tant que membre." -#: ckanext/canada/strings.py:51 +#: ckanext/canada/strings.py:53 #, python-format msgid "Assigned %s as an editor." msgstr "Nommé %s en tant que rédacteur(-trice)." -#: ckanext/canada/strings.py:52 +#: ckanext/canada/strings.py:54 #, python-format msgid "Assigned %s as an admin." msgstr "Nommé %s en tant qu’administrateur(-trice)." -#: ckanext/canada/strings.py:53 +#: ckanext/canada/strings.py:55 msgid "View deleted." msgstr "Aperçu supprimé." -#: ckanext/canada/strings.py:54 +#: ckanext/canada/strings.py:56 msgid "View updated." msgstr "Aperçu mis à jour." -#: ckanext/canada/strings.py:55 +#: ckanext/canada/strings.py:57 msgid "View created." msgstr "Aperçu créé." -#: ckanext/canada/strings.py:56 +#: ckanext/canada/strings.py:58 msgid "Promoted {} to sysadmin" msgstr "Promouvoir {} à administrateur du système" -#: ckanext/canada/strings.py:57 +#: ckanext/canada/strings.py:59 msgid "Revoked sysadmin permission from {}" msgstr "Révoquer la permission d’administrateur du système pour {}" -#: ckanext/canada/strings.py:58 +#: ckanext/canada/strings.py:60 msgid "Current Sysadmins" msgstr "Administrateurs du système actuels" -#: ckanext/canada/strings.py:59 +#: ckanext/canada/strings.py:61 msgid "Revoke Sysadmin permission" msgstr "Révoquer la permission des administrateurs du système" -#: ckanext/canada/strings.py:60 +#: ckanext/canada/strings.py:62 msgid "Promote user to Sysadmin" msgstr "Promouvoir l’utilisateur à administrateur du système" -#: ckanext/canada/strings.py:61 +#: ckanext/canada/strings.py:63 msgid "Promote" msgstr "Promouvoir" -#: ckanext/canada/strings.py:62 +#: ckanext/canada/strings.py:64 msgid "Cannot modify your own sysadmin privileges" msgstr "Impossible de modifier vos propres privilèges d’administrateur de système." -#: ckanext/canada/strings.py:63 +#: ckanext/canada/strings.py:65 msgid "Cannot modify sysadmin privileges for system user" msgstr "" "Impossible de modifier les privileges des administrateurs du système pour" " un utilisateur du système." -#: ckanext/canada/strings.py:64 -#: ckanext/canada/templates/snippets/facet_list.html:43 -#: ckanext/canada/templates/snippets/facet_list.html:44 +#: ckanext/canada/strings.py:66 +msgid "Activity type" +msgstr "Type d'activité" + +#: ckanext/canada/strings.py:67 +#: ckanext/canada/templates/snippets/facet_list.html:47 +#: ckanext/canada/templates/snippets/facet_list.html:48 msgid "Show more" msgstr "Afficher plus" -#: ckanext/canada/strings.py:65 +#: ckanext/canada/strings.py:68 msgid "Hide" msgstr "Cacher" -#: ckanext/canada/strings.py:66 -msgid "" -"You can use Markdown " -"formatting here" -msgstr "" -"Vous pouvez utiliser le formatage du " -"texte dans Markdown ici" - -#: ckanext/canada/strings.py:67 -msgid "" -"

    __bold text__

    _italic text_

    * list
    * of
    * " -"items

    1. numbered
    2. list
    3. of " -"items

    https://auto.link.ed/

    [Formatted " -"Link](https://formatted.link)

    > block quote

    Please note: HTML tags are stripped out for security" -" reasons

    " -msgstr "" -"

    __texte en gras__

    _texte en italique_

    * liste
    * " -"d'éléments

    1. liste
    2. d'éléments
    3. numérotés" -"

    https://lien.automatique/

    [Lien " -"formaté](https://lien.formaté)

    > bloc de citation

    Remarque : les balises HTML sont supprimées pour des" -" raisons de sécurité

    " +#: ckanext/canada/strings.py:69 +msgid "User %s deleted. You are now logged out." +msgstr "Utilisateur %s supprimé. Vous êtes maintenant déconnecté" #: ckanext/canada/strings.py:70 +msgid "User %s deleted." +msgstr "Utilisateur %s supprimé." + +#: ckanext/canada/strings.py:73 msgid "Please upload a file or link to an external resource" msgstr "" "Veuillez téléverser un fichier ou donner un lien vers une ressource " "externe" -#: ckanext/canada/strings.py:71 +#: ckanext/canada/strings.py:74 msgid "Cannot upload files of this type" msgstr "Impossible de téléverser un fichier de ce type" -#: ckanext/canada/strings.py:72 +#: ckanext/canada/strings.py:75 msgid "Cannot link files of this type" msgstr "Impossible de donner un lien vers un fichier de ce type" -#: ckanext/canada/strings.py:73 +#: ckanext/canada/strings.py:76 msgid "Your password must be {} characters or longer." msgstr "Votre mot de passe doit comporter au moins {} caractères." -#: ckanext/canada/strings.py:74 +#: ckanext/canada/strings.py:77 msgid "" "Your password must consist of at least three of the following character " "sets: uppercase characters, lowercase characters, digits, punctuation & " @@ -604,43 +640,89 @@ msgstr "" "suivants : majuscules, minuscules, chiffres, ponctuation et caractères " "spéciaux." -#: ckanext/canada/strings.py:76 +#: ckanext/canada/strings.py:79 msgid "Your password cannot be the same as your username." msgstr "Votre mot de passe ne peut pas être le même que votre nom d'utilisateur." -#: ckanext/canada/strings.py:79 +#: ckanext/canada/strings.py:81 +msgid "" +"Your current password is too weak. Please create a new password before " +"logging in again." +msgstr "" + +#: ckanext/canada/strings.py:84 msgid "These fields have been removed, click update below to save your changes." msgstr "" "Ces champs seront supprimés une fois que vous aurez sauvegardé vos " "changements." -#: ckanext/canada/strings.py:80 +#: ckanext/canada/strings.py:85 msgid "These fields have been removed." msgstr "Ces champs ont été supprimés." -#: ckanext/canada/strings.py:83 +#: ckanext/canada/strings.py:88 msgid "Your form submission could not be validated, please re-submit the form." msgstr "" "La soumission de votre formulaire n'a pas pu être confirmée. Veuillez le " "soumettre de nouveau." -#: ckanext/canada/strings.py:86 +#: ckanext/canada/strings.py:91 msgid "Open Government Portal" msgstr "Portail du gouvernement ouvert" -#: ckanext/canada/strings.py:87 +#: ckanext/canada/strings.py:92 msgid "Open Government Portal (staging)" msgstr "Portail du gouvernement ouvert (stadification)" -#: ckanext/canada/strings.py:90 +#: ckanext/canada/strings.py:95 +msgid "Delete from DataStore" +msgstr "Supprimer la table DataStore" + +#: ckanext/canada/strings.py:96 +msgid "Are you sure you want to delete the DataStore and Data Dictionary?" +msgstr "" +"Voulez-vous vraiment supprimer cette table DataStore et ce dictionnaire " +"de données" + +#: ckanext/canada/strings.py:97 +#: ckanext/canada/templates/organization/confirm_delete_member.html:3 +#: ckanext/canada/templates/organization/confirm_delete_member.html:14 +#: ckanext/canada/templates/package/confirm_delete.html:3 +#: ckanext/canada/templates/package/confirm_delete.html:13 +#: ckanext/canada/templates/package/confirm_delete_resource.html:3 +#: ckanext/canada/templates/package/confirm_delete_resource.html:13 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:41 +#: ckanext/canada/templates/user/confirm_delete.html:3 +#: ckanext/canada/templates/user/confirm_delete.html:14 +msgid "Confirm Delete" +msgstr "Confirmer la suppression" + +#: ckanext/canada/strings.py:100 +msgid "Validation Information" +msgstr "" + +#: ckanext/canada/strings.py:101 +msgid "Validation status:" +msgstr "" + +#: ckanext/canada/strings.py:102 +msgid "Validation timestamp:" +msgstr "" + +#: ckanext/canada/strings.py:103 +msgid "Duration:" +msgstr "" + +#: ckanext/canada/strings.py:106 msgid "Single" msgstr "Une seule" -#: ckanext/canada/strings.py:91 +#: ckanext/canada/strings.py:107 msgid "Repeatable" msgstr "Répétable" -#: ckanext/canada/strings.py:92 +#: ckanext/canada/strings.py:108 msgid "Optional" msgstr "Facultatif" @@ -673,7 +755,7 @@ msgstr "La balise \"%s\"ne peut pas contenir de caractères séparateurs U+%04x" msgid "Badly formed hexadecimal UUID string" msgstr "Chaîne UUID hexadécimale mal formée" -#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:7 #: ckanext/canada/validators.py:198 ckanext/canada/validators.py:200 msgid "Please enter a valid email address." msgstr "S’il vous plaît, mettez une adresse email valide." @@ -721,15 +803,15 @@ msgstr "" msgid "Invalid value for a digital object identifier." msgstr "" -#: ckanext/canada/view.py:101 +#: ckanext/canada/view.py:103 msgid "Note
    {0} is now logged in" msgstr "Note
    {0} est maintenant connecté" -#: ckanext/canada/view.py:111 +#: ckanext/canada/view.py:113 msgid "Login failed. Bad username or password." msgstr "L’authentification a échoué. Mauvais nom d’utilisateur ou mot de passe." -#: ckanext/canada/view.py:159 +#: ckanext/canada/view.py:161 msgid "" "The status has been added/updated for this suggested dataset. This update" " will be reflected on open.canada.ca shortly." @@ -737,32 +819,32 @@ msgstr "" "L’état a été ajouté/mis à jour pour cet ensemble de données suggéré. " "Cette mise à jour sera bientôt effectuée dans ouvert.canada.ca." -#: ckanext/canada/view.py:162 +#: ckanext/canada/view.py:164 #, python-format msgid "Your dataset %s has been saved." msgstr "Votre jeu de données %s a été sauvegardé." -#: ckanext/canada/view.py:172 +#: ckanext/canada/view.py:174 msgid "Dataset added." msgstr "Jeu de données ajouté." -#: ckanext/canada/view.py:181 +#: ckanext/canada/view.py:183 msgid "Resource updated." msgstr "Ressource mise à jour." -#: ckanext/canada/view.py:190 +#: ckanext/canada/view.py:192 msgid "Resource added." msgstr "Une ressource a été ajoutée." -#: ckanext/canada/view.py:245 +#: ckanext/canada/view.py:247 msgid "Unauthorized to request username recovery." msgstr "Non autorisé à demander la récupération du nom d'utilisateur." -#: ckanext/canada/view.py:250 +#: ckanext/canada/view.py:252 msgid "Email is required" msgstr "L'adresse électronique est requise" -#: ckanext/canada/view.py:275 +#: ckanext/canada/view.py:277 msgid "" "Error sending the email. Try again later or contact an administrator for " "help" @@ -770,7 +852,7 @@ msgstr "" "Une erreur est survenue lors de l'envoi de l'email. Veuillez réessayer " "plus tard ou contacter un administrateur." -#: ckanext/canada/view.py:282 +#: ckanext/canada/view.py:284 msgid "" "An email has been sent to you containing your username(s). (unless the " "account specified does not exist)" @@ -778,115 +860,101 @@ msgstr "" "Un courriel vous a été envoyé contenant votre (vos) nom(s) d'utilisateur." " (sauf si le compte spécifié n'existe pas)" -#: ckanext/canada/view.py:360 +#: ckanext/canada/view.py:362 msgid "Unauthorized to create a resource for this package" msgstr "Non autorisé à créer une ressource pour cet ensemble" -#: ckanext/canada/view.py:397 ckanext/canada/view.py:408 +#: ckanext/canada/view.py:399 ckanext/canada/view.py:410 msgid "This record already exists" msgstr "Cet enregistrement existe déjà." -#: ckanext/canada/view.py:405 ckanext/canada/view.py:413 +#: ckanext/canada/view.py:407 ckanext/canada/view.py:415 msgid "Something went wrong, your record was not created. Please contact support." msgstr "" "Un problème s’est produit, votre document n’a pas été créé. Veuillez " "contacter l’assistance technique." -#: ckanext/canada/view.py:428 +#: ckanext/canada/view.py:430 msgid "Record Created" msgstr "Renregistrement créé" -#: ckanext/canada/view.py:466 +#: ckanext/canada/view.py:468 msgid "Unauthorized to update dataset" msgstr "Vous n'êtes pas autorisé à mettre à jour ce jeu de données" -#: ckanext/canada/view.py:476 ckanext/canada/view.py:617 -#: ckanext/canada/view.py:652 +#: ckanext/canada/view.py:478 ckanext/canada/view.py:619 +#: ckanext/canada/view.py:654 msgid "Not found" msgstr "Non trouvé" -#: ckanext/canada/view.py:478 +#: ckanext/canada/view.py:480 msgid "Multiple records found" msgstr "Plusieurs enregistrements ont été trouvés" -#: ckanext/canada/view.py:515 +#: ckanext/canada/view.py:517 msgid "Something went wrong, your record was not updated. Please contact support." msgstr "" "Un problème s’est produit, votre document n’a pas été mis à jour. " "Veuillez contacter l’assistance technique." -#: ckanext/canada/view.py:531 +#: ckanext/canada/view.py:533 #, python-format msgid "Record %s Updated" msgstr "Dossier %s mis à jour" -#: ckanext/canada/view.py:570 +#: ckanext/canada/view.py:572 msgid "No organizations found" msgstr "Aucune organisation n’a été trouvée" -#: ckanext/canada/view.py:574 +#: ckanext/canada/view.py:576 msgid "Recombinant resource_name not found" msgstr "Le recombinant resource_name n’a pas été trouvé" -#: ckanext/canada/view.py:608 +#: ckanext/canada/view.py:610 msgid "User {0} not authorized to update resource {1}" msgstr "Vous n'êtes pas autorisé à supprimer la ressource %s" -#: ckanext/canada/view.py:663 +#: ckanext/canada/view.py:665 msgid "{num} deleted." msgstr "Aperçu supprimé." #. SQL Trigger String for PD Type: service -#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:705 +#: ckanext/canada/tables/service.yaml:2348 ckanext/canada/view.py:707 msgid "Number required" msgstr "Nombre requis" -#: ckanext/canada/view.py:710 +#: ckanext/canada/view.py:712 msgid "Integer required" msgstr "Entier requis" -#: ckanext/canada/view.py:746 ckanext/canada/view.py:754 -#: ckanext/canada/view.py:788 +#: ckanext/canada/view.py:748 ckanext/canada/view.py:756 +#: ckanext/canada/view.py:790 msgid "Not authorized to see this page" msgstr "Non autorisé à voir cette page" -#: ckanext/canada/view.py:774 +#: ckanext/canada/view.py:776 msgid " record(s) published." msgstr " d’enregistrements publiés." -#: ckanext/canada/view.py:812 -#, python-format -msgid "Unauthorized to delete resource %s" -msgstr "Vous n'êtes pas autorisé à supprimer la ressource %s" - -#: ckanext/canada/view.py:814 -#, python-format -msgid "DataStore table and Data Dictionary deleted for resource %s" -msgstr "" -"Tableau de stockage de données et dictionnaire de données supprimés pour " -"la ressource %s" - -#: ckanext/canada/templates/organization/edit_base.html:31 -#: ckanext/canada/templates/organization/read_base.html:35 #: ckanext/canada/templates/organization/snippets/organization_item.html:16 #: ckanext/canada/templates/package/edit.html:4 #: ckanext/canada/templates/package/edit.html:8 #: ckanext/canada/templates/package/resource_edit.html:3 #: ckanext/canada/templates/package/resource_edit_base.html:7 #: ckanext/canada/templates/package/wet_datatable.html:15 -#: ckanext/canada/view.py:908 +#: ckanext/canada/view.py:874 msgid "Edit" msgstr "Modifier" -#: ckanext/canada/view.py:1041 +#: ckanext/canada/view.py:1007 msgid "Access denied" msgstr "Accès refusé" -#: ckanext/canada/view.py:1092 +#: ckanext/canada/view.py:1058 msgid "Account Created" msgstr "Compte créé" -#: ckanext/canada/view.py:1094 +#: ckanext/canada/view.py:1060 msgid "" "Thank you for creating your account for the Open Government registry. " "Although your account is active, it has not yet been linked to your " @@ -897,7 +965,7 @@ msgstr "" "ministère. Vous ne pourrez créer ou modifier de jeux de données dans le " "registre tant que votre compte n’aura pas été relié à votre ministère." -#: ckanext/canada/view.py:1101 +#: ckanext/canada/view.py:1067 msgid "" "You should receive an email within the next business day once the account" " activation process has been completed. If you require faster processing " @@ -910,63 +978,24 @@ msgstr "" "plus rapidement, veuillez envoyer une demande directement à :open-ouvert@tbs-sct.gc.ca.Please try another search.

    " msgstr "

    Veuillez essayer une nouvelle recherche.

    " -#: ckanext/canada/templates/admin/publish_search.html:69 +#: ckanext/canada/templates/admin/publish_search.html:75 msgid "" "

    There was an error while searching. Please try " "again.

    " @@ -2306,29 +2335,25 @@ msgstr "" "

    Une erreur s’est produite lors de la recherche. " "Veuillez réessayer.

    " -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 msgid "Search Filters" msgstr "Filtres de recherche" -#: ckanext/canada/templates/admin/publish_search.html:86 -#: ckanext/canada/templates/package/search.html:23 -#: ckanext/canada/templates/snippets/facet_list.html:56 -#: ckanext/canada/templates/snippets/facet_list.html:57 -#: ckanext/canada/templates/snippets/publish_facet.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:63 +#: ckanext/canada/templates/admin/publish_search.html:94 +#: ckanext/canada/templates/package/search.html:25 +#: ckanext/canada/templates/snippets/facet_list.html:61 +#: ckanext/canada/templates/snippets/facet_list.html:62 +#: ckanext/canada/templates/snippets/publish_facet.html:60 +#: ckanext/canada/templates/snippets/publish_facet.html:61 msgid "Clear All" msgstr "Effacer tout" -#: ckanext/canada/templates/admin/trash.html:20 -msgid "Purge" -msgstr "Purge" - -#: ckanext/canada/templates/admin/trash.html:35 -msgid "

    Purge deleted datasets forever and irreversibly.

    " +#: ckanext/canada/templates/admin/trash.html:17 +msgid "Purge deleted datasets, organizations or groups forever and irreversibly." msgstr "" -"

    Purgez les jeux de données supprimés de manière définitive et " -"irréversible.

    " +"Suppression des ensembles de données, des organismes ou des groupes de " +"manière définitive et irréversible." #: ckanext/canada/templates/admin/snippets/package_item.html:8 msgid "Publish?" @@ -2352,39 +2377,6 @@ msgstr "" msgid "Publish Selected Records" msgstr "Publier les dossiers sélectionnés" -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:3 -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:13 -#: ckanext/canada/templates/organization/confirm_delete_member.html:3 -#: ckanext/canada/templates/organization/confirm_delete_member.html:13 -#: ckanext/canada/templates/package/confirm_delete.html:3 -#: ckanext/canada/templates/package/confirm_delete.html:12 -#: ckanext/canada/templates/package/confirm_delete_resource.html:3 -#: ckanext/canada/templates/package/confirm_delete_resource.html:12 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:3 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 -#: ckanext/canada/templates/user/confirm_delete.html:3 -#: ckanext/canada/templates/user/confirm_delete.html:13 -msgid "Confirm Delete" -msgstr "Confirmer la suppression" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:8 -#: ckanext/canada/templates/xloader/resource_data.html:9 -msgid "Are you sure you want to delete this DataStore table and Data Dictionary?" -msgstr "" -"Voulez-vous vraiment supprimer cette table DataStore et ce dictionnaire " -"de données" - -#: ckanext/canada/templates/canada/confirm_datastore_delete.html:12 -#: ckanext/canada/templates/organization/confirm_delete_member.html:12 -#: ckanext/canada/templates/package/confirm_delete.html:11 -#: ckanext/canada/templates/package/confirm_delete_resource.html:11 -#: ckanext/canada/templates/recombinant/confirm_select_delete.html:39 -#: ckanext/canada/templates/recombinant/create_pd_record.html:86 -#: ckanext/canada/templates/recombinant/update_pd_record.html:89 -#: ckanext/canada/templates/user/confirm_delete.html:12 -msgid "Cancel" -msgstr "Annuler" - #: ckanext/canada/templates/datastore/snippets/dictionary_form.html:7 msgid "English Label" msgstr "Label anglais" @@ -2578,14 +2570,40 @@ msgstr "" "administrateur général devant un comité parlementaire, ajoutez-y du " "contenu ou modifiez-la." +#: ckanext/canada/templates/macros/form/markdown.html:27 +msgid "" +"

    __bold text__

    _italic text_

    * list
    * of
    * " +"items

    1. numbered
    2. list
    3. of " +"items

    https://auto.link.ed/

    [Formatted " +"Link](https://formatted.link)

    > block quote

    Please note: HTML tags are stripped out for security" +" reasons

    " +msgstr "" +"

    __texte en gras__

    _texte en italique_

    * liste
    * " +"d'éléments

    1. liste
    2. d'éléments
    3. " +"numérotés

    https://lien.automatique/

    [Lien " +"formaté](https://lien.formaté)

    > bloc de citation

    Remarque : les balises HTML sont supprimées pour des" +" raisons de sécurité

    " + +#: ckanext/canada/templates/macros/form/markdown.html:33 +msgid "" +"You can use
    Markdown formatting here" +msgstr "" +"Vous pouvez utiliser le formatage du texte dans Markdown ici" + #: ckanext/canada/templates/organization/activity_stream.html:4 -#: ckanext/canada/templates/package/read_base.html:23 +#: ckanext/canada/templates/package/read_base.html:27 #: ckanext/canada/templates/user/activity_stream.html:12 msgid "Activity Stream" msgstr "Flux d’Activités" #: ckanext/canada/templates/organization/activity_stream.html:11 -#: ckanext/canada/templates/package/read_base.html:150 +#: ckanext/canada/templates/package/read_base.html:154 msgid "Atom Feed" msgstr "Fil de nouvelles Atom" @@ -2593,26 +2611,53 @@ msgstr "Fil de nouvelles Atom" msgid "Are you sure you want to delete member - {name}?" msgstr "Êtes-vous sûr de vouloir supprimer le membre {name}?" -#: ckanext/canada/templates/organization/edit_base.html:15 -#: ckanext/canada/templates/organization/read_base.html:24 -#: ckanext/canada/templates/package/search.html:16 -#: ckanext/canada/templates/snippets/organization.html:37 -#: ckanext/canada/templates/user/read.html:21 -msgid "Datasets" -msgstr "Dossiers" +#: ckanext/canada/templates/organization/confirm_delete_member.html:13 +#: ckanext/canada/templates/package/confirm_delete.html:12 +#: ckanext/canada/templates/package/confirm_delete_resource.html:12 +#: ckanext/canada/templates/recombinant/confirm_select_delete.html:40 +#: ckanext/canada/templates/recombinant/create_pd_record.html:87 +#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/user/confirm_delete.html:13 +msgid "Cancel" +msgstr "Annuler" -#: ckanext/canada/templates/organization/edit_base.html:18 -#: ckanext/canada/templates/organization/read_base.html:27 +#: ckanext/canada/templates/organization/edit.html:6 +#: ckanext/canada/templates/organization/edit_base.html:10 +#: ckanext/canada/templates/user/edit.html:7 +msgid "Manage" +msgstr "Gérer" + +#: ckanext/canada/templates/organization/edit_base.html:8 +#: ckanext/canada/templates/organization/index.html:26 +#: ckanext/canada/templates/organization/members.html:10 +#: ckanext/canada/templates/organization/read_base.html:7 +#: ckanext/canada/templates/snippets/cdts/header.html:154 +#: ckanext/canada/templates/user/read.html:28 +#: ckanext/canada/templates/user/read_base.html:12 +#: ckanext/canada/templates/user/read_base.html:97 +msgid "Organizations" +msgstr "Organisations" + +#: ckanext/canada/templates/organization/edit_base.html:19 +msgid "View Organization" +msgstr "Voir l’organisation" + +#: ckanext/canada/templates/organization/edit_base.html:26 +msgid "Edit Organization" +msgstr "Modifier l’organisation" + +#: ckanext/canada/templates/organization/edit_base.html:28 +#: ckanext/canada/templates/organization/read_base.html:21 msgid "Activity" msgstr "Activité" -#: ckanext/canada/templates/organization/edit_base.html:22 -#: ckanext/canada/templates/organization/read_base.html:31 +#: ckanext/canada/templates/organization/edit_base.html:30 +#: ckanext/canada/templates/organization/read_base.html:23 msgid "Edit Members" msgstr "Modifier les membres" -#: ckanext/canada/templates/organization/edit_base.html:26 -#: ckanext/canada/templates/organization/read_base.html:40 +#: ckanext/canada/templates/organization/edit_base.html:32 +#: ckanext/canada/templates/organization/read_base.html:25 msgid "View Members" msgstr "Afficher les membres" @@ -2624,15 +2669,6 @@ msgstr "Il n’y a actuellement aucune organisation pour ce site" msgid "How about creating one?" msgstr "Pourquoi ne pas en créer une?" -#: ckanext/canada/templates/organization/index.html:26 -#: ckanext/canada/templates/organization/members.html:10 -#: ckanext/canada/templates/organization/read_base.html:6 -#: ckanext/canada/templates/snippets/cdts/header.html:154 -#: ckanext/canada/templates/user/read.html:28 -#: ckanext/canada/templates/user/read_base.html:99 -msgid "Organizations" -msgstr "Organisations" - #: ckanext/canada/templates/organization/member_new.html:9 msgid "Back to all members" msgstr "Retour à tous les membres" @@ -2642,58 +2678,58 @@ msgid "Edit Member" msgstr "Modifier le membre" #: ckanext/canada/templates/organization/member_new.html:11 -#: ckanext/canada/templates/organization/member_new.html:66 +#: ckanext/canada/templates/organization/member_new.html:67 msgid "Add Member" msgstr "Ajouter un membre" -#: ckanext/canada/templates/organization/member_new.html:19 +#: ckanext/canada/templates/organization/member_new.html:20 msgid "Existing User" msgstr "Utilisateur existant" -#: ckanext/canada/templates/organization/member_new.html:22 +#: ckanext/canada/templates/organization/member_new.html:23 msgid "If you wish to add an existing user, search for their username below." msgstr "" "Si vous souhaitez ajouter un utilisateur existant recherchez son nom " "d’utilisateur ci-dessous." -#: ckanext/canada/templates/organization/member_new.html:38 +#: ckanext/canada/templates/organization/member_new.html:39 msgid "or" msgstr "ou" -#: ckanext/canada/templates/organization/member_new.html:44 +#: ckanext/canada/templates/organization/member_new.html:45 msgid "New User" msgstr "Nouvel utilisateur" -#: ckanext/canada/templates/organization/member_new.html:47 +#: ckanext/canada/templates/organization/member_new.html:48 msgid "If you wish to invite a new user, enter their email address." msgstr "" "Si vous souhaitez inviter un nouvel utilisateur saisissez son adresse " "électronique." -#: ckanext/canada/templates/organization/member_new.html:50 +#: ckanext/canada/templates/organization/member_new.html:51 msgid "Email address" msgstr "Adresse électronique" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 msgid "Are you sure you want to delete this member?" msgstr "Êtes-vous sûr de vouloir supprimer ce membre?" -#: ckanext/canada/templates/organization/member_new.html:60 +#: ckanext/canada/templates/organization/member_new.html:61 #: ckanext/canada/templates/scheming/package/read.html:26 #: ckanext/canada/templates/scheming/snippets/form_field.html:21 -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Delete" msgstr "Supprimer" -#: ckanext/canada/templates/organization/member_new.html:62 +#: ckanext/canada/templates/organization/member_new.html:63 msgid "Update Member" msgstr "Mise à jour du membre" -#: ckanext/canada/templates/organization/member_new.html:78 +#: ckanext/canada/templates/organization/member_new.html:79 msgid "What are roles?" msgstr "Que sont les rôles?" -#: ckanext/canada/templates/organization/member_new.html:81 +#: ckanext/canada/templates/organization/member_new.html:82 msgid "" "

    Admin: Can add/edit and delete datasets, as well as " "manage organization members.

    Editor: Can add and " @@ -2713,9 +2749,13 @@ msgstr "" msgid "Members" msgstr "Membres" -#: ckanext/canada/templates/organization/read.html:12 -msgid "Edit Organization" -msgstr "Modifier l’organisation" +#: ckanext/canada/templates/organization/read_base.html:20 +#: ckanext/canada/templates/package/search.html:16 +#: ckanext/canada/templates/snippets/organization.html:37 +#: ckanext/canada/templates/user/read.html:21 +#: ckanext/canada/templates/user/read_base.html:11 +msgid "Datasets" +msgstr "Dossiers" #: ckanext/canada/templates/organization/snippets/helper.html:2 msgid "What are Organizations?" @@ -2748,7 +2788,10 @@ msgstr[1] "{num} dossiers" msgid "0 Datasets" msgstr "0 dossiers" -#: ckanext/canada/templates/organization/snippets/organization_search.html:3 +#: ckanext/canada/templates/organization/snippets/organization_search.html:4 +#: ckanext/canada/templates/recombinant/snippets/org_select.html:18 +#: ckanext/canada/templates/scheming/form_snippets/organization_autocomplete.html:26 +#: ckanext/canada/templates/user/new_user_form.html:18 msgid "Search organizations..." msgstr "Rechercher les organisations..." @@ -2796,12 +2839,12 @@ msgstr "Retourner à la page de recherche" msgid "Disabled" msgstr "Désactivé" -#: ckanext/canada/templates/package/read.html:18 -#: ckanext/canada/templates/package/read.html:101 +#: ckanext/canada/templates/package/read.html:17 +#: ckanext/canada/templates/package/read.html:93 #: ckanext/canada/templates/package/snippets/resource_item.html:12 #: ckanext/canada/templates/scheming/display_snippets/fluent_tags.html:8 -#: ckanext/canada/templates/snippets/package_item.html:37 -#: ckanext/canada/templates/snippets/package_item.html:56 +#: ckanext/canada/templates/snippets/package_item.html:39 +#: ckanext/canada/templates/snippets/package_item.html:55 msgid "" "This third party metadata element has been translated using an automated " "translation tool. To report any discrepancies please contact open-ouvert" @@ -2811,25 +2854,12 @@ msgstr "" "traduction automatique. Pour signaler toute anomalie veuillez communiquer" " avec open-ouvert@tbs-sct.gc.ca" -#: ckanext/canada/templates/package/read.html:24 -#: ckanext/canada/templates/package/resource_read.html:23 -#, python-format -msgid "" -"You're currently viewing an old version of this dataset. Some resources " -"may no longer exist or the dataset may not display correctly. To see the " -"current version, click here." -msgstr "" -"Vous consultez actuellement une ancienne version de ce jeu de données. Il" -" se peut que certaines ressources n’existent plus ou que le jeu de " -"données ne s’affiche pas correctement. Pour voir la version actuelle, " -"cliquez ici." - +#: ckanext/canada/templates/package/read.html:39 #: ckanext/canada/templates/package/read.html:47 -#: ckanext/canada/templates/package/read.html:55 msgid "Action required:" msgstr "Mesure requise :" -#: ckanext/canada/templates/package/read.html:48 +#: ckanext/canada/templates/package/read.html:40 msgid "" "Draft record has been saved and can be edited. Mark as ready to publish " "to continue." @@ -2837,36 +2867,36 @@ msgstr "" "Une ébauche du document a été sauvegardée et peut-être modifiée. Marquer " "en tant que prête à publier pour poursuivre." -#: ckanext/canada/templates/package/read.html:56 +#: ckanext/canada/templates/package/read.html:48 msgid "Seek out departmental approval and mark as approved to continue." msgstr "" "Chercher à obtenir l'approbation du ministère et marquer en tant " "qu'approuvé pour poursuivre." -#: ckanext/canada/templates/package/read.html:63 +#: ckanext/canada/templates/package/read.html:55 msgid "Data record is in queue for validation." msgstr "La fiche est dans la file d'attente à des fins de validation." -#: ckanext/canada/templates/package/read.html:64 +#: ckanext/canada/templates/package/read.html:56 msgid "Record will be published by the following business day upon validation." msgstr "" "Le document sera publié d'ici le prochain jour ouvrable une fois qu'il " "aura été validé." -#: ckanext/canada/templates/package/read.html:82 -#: ckanext/canada/templates/package/read.html:83 +#: ckanext/canada/templates/package/read.html:74 +#: ckanext/canada/templates/package/read.html:75 msgid "View on Portal" msgstr "Consulter le Portail" -#: ckanext/canada/templates/package/read.html:89 +#: ckanext/canada/templates/package/read.html:81 msgid "This dataset has been deleted and is no longer accessible" msgstr "Cet ensemble de données a été supprimé et n’est plus accessible" -#: ckanext/canada/templates/package/read.html:112 +#: ckanext/canada/templates/package/read.html:104 msgid "Made available by the " msgstr "Rendus disponibles par l’entremise du " -#: ckanext/canada/templates/package/read.html:114 +#: ckanext/canada/templates/package/read.html:106 msgid "" "

    These resources are not under the control of the Government of Canada " "and the link is provided solely for the convenience of our website " @@ -2904,154 +2934,166 @@ msgstr "" " Web non gouvernemental avant de fournir leurs renseignements " "personnels.

    " -#: ckanext/canada/templates/package/read.html:129 -#: ckanext/canada/templates/package/read.html:152 -#: ckanext/canada/templates/package/read_base.html:56 -#: ckanext/canada/templates/package/read_base.html:65 -#: ckanext/canada/templates/package/read_base.html:81 -#: ckanext/canada/templates/package/read_base.html:155 -#: ckanext/canada/templates/package/read_base.html:187 -#: ckanext/canada/templates/recombinant/create_pd_record.html:29 -#: ckanext/canada/templates/recombinant/update_pd_record.html:29 -#: ckanext/canada/templates/snippets/package_item.html:91 +#: ckanext/canada/templates/package/read.html:121 +#: ckanext/canada/templates/package/read.html:144 +#: ckanext/canada/templates/package/read_base.html:60 +#: ckanext/canada/templates/package/read_base.html:69 +#: ckanext/canada/templates/package/read_base.html:85 +#: ckanext/canada/templates/package/read_base.html:159 +#: ckanext/canada/templates/package/read_base.html:191 +#: ckanext/canada/templates/recombinant/create_pd_record.html:30 +#: ckanext/canada/templates/recombinant/update_pd_record.html:30 +#: ckanext/canada/templates/snippets/package_item.html:90 msgid ":" msgstr " :" -#: ckanext/canada/templates/package/read.html:150 +#: ckanext/canada/templates/package/read.html:142 msgid "Issued by" msgstr "Publiée par" -#: ckanext/canada/templates/package/read.html:177 +#: ckanext/canada/templates/package/read.html:169 msgid "Related Items" msgstr "Articles connexes" -#: ckanext/canada/templates/package/read.html:191 +#: ckanext/canada/templates/package/read.html:183 msgid "Contact Information" msgstr "Coordonnées" -#: ckanext/canada/templates/package/read.html:193 +#: ckanext/canada/templates/package/read.html:185 msgid "Delivery Point:" msgstr "Point de livraison :" -#: ckanext/canada/templates/package/read.html:196 +#: ckanext/canada/templates/package/read.html:188 msgid "City:" msgstr "Ville :" -#: ckanext/canada/templates/package/read.html:199 +#: ckanext/canada/templates/package/read.html:191 msgid "Administrative Area:" msgstr "Zone administrative :" -#: ckanext/canada/templates/package/read.html:202 +#: ckanext/canada/templates/package/read.html:194 msgid "Postal Code:" msgstr "Code postal :" -#: ckanext/canada/templates/package/read.html:205 +#: ckanext/canada/templates/package/read.html:197 msgid "Country:" msgstr "Pays :" -#: ckanext/canada/templates/package/read.html:208 +#: ckanext/canada/templates/package/read.html:200 msgid "Electronic Mail Address:" msgstr "Adresse de courrier électronique :" -#: ckanext/canada/templates/package/read.html:230 +#: ckanext/canada/templates/package/read.html:222 msgid "Similar records" msgstr "Dossiers similaires" -#: ckanext/canada/templates/package/read_base.html:18 +#: ckanext/canada/templates/package/read_base.html:22 msgid "Dataset" msgstr "Jeu de données" -#: ckanext/canada/templates/package/read_base.html:41 +#: ckanext/canada/templates/package/read_base.html:45 #: ckanext/canada/templates/scheming/package/resource_read.html:9 msgid "Additional Information" msgstr "Informations complémentaires" -#: ckanext/canada/templates/package/read_base.html:65 +#: ckanext/canada/templates/package/read_base.html:69 msgid "Temporal Coverage" msgstr "Couverture temporelle" -#: ckanext/canada/templates/package/read_base.html:68 +#: ckanext/canada/templates/package/read_base.html:72 msgid "to" msgstr "à" -#: ckanext/canada/templates/package/read_base.html:70 +#: ckanext/canada/templates/package/read_base.html:74 msgid "to undefined" msgstr "à non défini" -#: ckanext/canada/templates/package/read_base.html:72 +#: ckanext/canada/templates/package/read_base.html:76 msgid "undefined to" msgstr "non défini à" -#: ckanext/canada/templates/package/read_base.html:81 +#: ckanext/canada/templates/package/read_base.html:85 msgid "Openness Rating" msgstr "Cote de degrée d’ouverture des données" -#: ckanext/canada/templates/package/read_base.html:86 +#: ckanext/canada/templates/package/read_base.html:90 msgid "one star" msgstr "une étoile" -#: ckanext/canada/templates/package/read_base.html:87 +#: ckanext/canada/templates/package/read_base.html:91 msgid "two stars" msgstr "deux étoiles" -#: ckanext/canada/templates/package/read_base.html:88 +#: ckanext/canada/templates/package/read_base.html:92 msgid "three stars" msgstr "trois étoiles" -#: ckanext/canada/templates/package/read_base.html:89 +#: ckanext/canada/templates/package/read_base.html:93 msgid "four stars" msgstr "quatre étoiles" -#: ckanext/canada/templates/package/read_base.html:90 +#: ckanext/canada/templates/package/read_base.html:94 msgid "five stars" msgstr "cinq étoiles" -#: ckanext/canada/templates/package/read_base.html:101 +#: ckanext/canada/templates/package/read_base.html:105 msgid "About this Record" msgstr "Au sujet de ce dossier" -#: ckanext/canada/templates/package/read_base.html:105 +#: ckanext/canada/templates/package/read_base.html:109 msgid "Record Released:" msgstr "Dossier publié :" -#: ckanext/canada/templates/package/read_base.html:109 +#: ckanext/canada/templates/package/read_base.html:113 msgid "Record Modified:" msgstr "Dossier modifié :" -#: ckanext/canada/templates/package/read_base.html:113 +#: ckanext/canada/templates/package/read_base.html:117 msgid "Record ID:" msgstr "Identificateur du dossier :" -#: ckanext/canada/templates/package/read_base.html:117 +#: ckanext/canada/templates/package/read_base.html:121 msgid "Metadata:" msgstr "Métadonnées :" -#: ckanext/canada/templates/package/read_base.html:121 +#: ckanext/canada/templates/package/read_base.html:125 msgid "Link to JSON format" msgstr "Lien au format JSON" -#: ckanext/canada/templates/package/read_base.html:127 +#: ckanext/canada/templates/package/read_base.html:131 msgid "DCAT (JSON-LD)" msgstr "DCAT (JSON-LD)" -#: ckanext/canada/templates/package/read_base.html:134 +#: ckanext/canada/templates/package/read_base.html:138 msgid "DCAT (XML)" msgstr "DCAT (XML)" -#: ckanext/canada/templates/package/read_base.html:142 +#: ckanext/canada/templates/package/read_base.html:146 msgid "FGP Metadata:" msgstr "Métadonnées de la PGF :" -#: ckanext/canada/templates/package/read_base.html:144 +#: ckanext/canada/templates/package/read_base.html:148 msgid "HNAP ISO:19115 Metadata Record" msgstr "Enregistrement de métadonnées de HNAP ISO:19115" -#: ckanext/canada/templates/package/resource_edit.html:12 +#: ckanext/canada/templates/package/resource_edit.html:11 msgid "Go back" msgstr "Retourner" -#: ckanext/canada/templates/package/resource_read.html:58 -#: ckanext/canada/templates/package/snippets/resource_item.html:73 +#: ckanext/canada/templates/package/resource_edit_base.html:12 +msgid "All resources" +msgstr "" + +#: ckanext/canada/templates/package/resource_edit_base.html:14 +msgid "View resource" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:62 +msgid "List of downloadable formats" +msgstr "" + +#: ckanext/canada/templates/package/resource_read.html:64 +#: ckanext/canada/templates/package/snippets/resource_item.html:81 msgid "Download" msgstr "Télécharger" @@ -3064,13 +3106,25 @@ msgstr "Ressources" msgid "Search Open Government" msgstr "Recherche du Gouvernement ouvert" -#: ckanext/canada/templates/package/search.html:49 +#: ckanext/canada/templates/package/search.html:37 +msgid "License" +msgstr "" + +#: ckanext/canada/templates/package/search.html:57 msgid "Please review your spelling, or reduce the number of filters selected." msgstr "" "S’il vous plaît vérifier l’orthographe, ou réduire le nombre de filtres " "sélectionnés." -#: ckanext/canada/templates/package/snippets/resource_item.html:63 +#: ckanext/canada/templates/package/view_edit_base.html:4 +msgid "All views" +msgstr "" + +#: ckanext/canada/templates/package/view_edit_base.html:7 +msgid "View view" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:71 #: ckanext/canada/templates/package/wet_datatable.html:9 msgid "Preview" msgstr "Aperçu" @@ -3136,38 +3190,71 @@ msgstr "Chargement..." msgid "Data API" msgstr "API de données" -#: ckanext/canada/templates/package/snippets/resource_item.html:56 +#: ckanext/canada/templates/package/snippets/resource_info.html:8 +msgid "Additional Information " +msgstr "Informations complémentaires" + +#: ckanext/canada/templates/package/snippets/resource_info.html:40 +#: ckanext/canada/templates/package/snippets/resource_item.html:34 +#: ckanext/canada/templates/package/snippets/resources.html:51 +#, python-format +msgid "+ %s more" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:64 msgid "Explore" msgstr "Explorer" -#: ckanext/canada/templates/package/snippets/resource_item.html:65 +#: ckanext/canada/templates/package/snippets/resource_item.html:73 msgid "More information" msgstr "Plus d'information" -#: ckanext/canada/templates/package/snippets/resource_item.html:75 +#: ckanext/canada/templates/package/snippets/resource_item.html:83 msgid "Go to resource" msgstr "Aller à la ressource" -#: ckanext/canada/templates/package/snippets/resource_item.html:84 +#: ckanext/canada/templates/package/snippets/resource_item.html:92 #: ckanext/canada/templates/package/snippets/resources_list.html:9 #: ckanext/canada/templates/snippets/search_form.html:34 msgid "View on Map" msgstr "Afficher la carte" -#: ckanext/canada/templates/package/snippets/resource_item.html:89 -#: ckanext/canada/templates/package/snippets/resources.html:25 +#: ckanext/canada/templates/package/snippets/resource_item.html:97 +#: ckanext/canada/templates/package/snippets/resources.html:21 msgid "Edit resource" msgstr "Editer la ressource" -#: ckanext/canada/templates/package/snippets/resource_item.html:91 +#: ckanext/canada/templates/package/snippets/resource_item.html:99 #: ckanext/canada/templates/package/snippets/resources.html:27 msgid "Views" msgstr "Vues" +#: ckanext/canada/templates/package/snippets/resource_item.html:101 +#: ckanext/canada/templates/package/snippets/resources.html:29 +msgid "Are you sure you want to delete this resource?" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resource_item.html:102 +#: ckanext/canada/templates/package/snippets/resources.html:30 +msgid "Delete resource" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:24 +msgid "DataStore" +msgstr "" + +#: ckanext/canada/templates/package/snippets/resources.html:25 +msgid "Data Dictionary" +msgstr "Dictionnaire de données" + #: ckanext/canada/templates/package/snippets/resources_list.html:4 msgid "Data and Resources" msgstr "Données et ressources" +#: ckanext/canada/templates/package/snippets/resources_list.html:16 +msgid "Add new resource" +msgstr "" + #: ckanext/canada/templates/package/snippets/schemaorg.html:3 msgid "Government of Canada Open Government Portal" msgstr "Gouvernement du Canada site gouvernemental ouvert" @@ -3268,19 +3355,19 @@ msgstr[1] "" msgid "Create Record" msgstr "Créer un dossier" -#: ckanext/canada/templates/recombinant/create_pd_record.html:24 -#: ckanext/canada/templates/recombinant/update_pd_record.html:24 +#: ckanext/canada/templates/recombinant/create_pd_record.html:25 +#: ckanext/canada/templates/recombinant/update_pd_record.html:25 #: ckanext/canada/templates/scheming/snippets/errors.html:6 msgid "The form contains invalid entries:" msgstr "Le formulaire contient des entrées non valides :" -#: ckanext/canada/templates/recombinant/create_pd_record.html:54 -#: ckanext/canada/templates/recombinant/update_pd_record.html:57 +#: ckanext/canada/templates/recombinant/create_pd_record.html:55 +#: ckanext/canada/templates/recombinant/update_pd_record.html:58 msgid "You may select or deselect multiple entries (Ctrl+Click)." msgstr "Vous pouvez sélectionner ou désélectionner de multiples entrées." -#: ckanext/canada/templates/recombinant/create_pd_record.html:87 -#: ckanext/canada/templates/recombinant/update_pd_record.html:90 +#: ckanext/canada/templates/recombinant/create_pd_record.html:88 +#: ckanext/canada/templates/recombinant/update_pd_record.html:91 #: ckanext/canada/templates/scheming/package/snippets/package_form.html:63 msgid "Save" msgstr "Enregistrer" @@ -3310,11 +3397,15 @@ msgstr "" "sct.gc.ca\">open-ouvert@tbs-sct.gc.ca avec l’adresse électronique du " "coordinateur de l’accès à l’information de votre organisation." -#: ckanext/canada/templates/recombinant/resource_edit.html:39 +#: ckanext/canada/templates/recombinant/resource_edit.html:70 +msgid "Info" +msgstr "" + +#: ckanext/canada/templates/recombinant/resource_edit.html:77 msgid "Guide" msgstr "Guide" -#: ckanext/canada/templates/recombinant/resource_edit.html:43 +#: ckanext/canada/templates/recombinant/resource_edit.html:81 #, python-format msgid "" "For information on how to prepare, maintain and upload templates to the " @@ -3443,6 +3534,16 @@ msgstr "URL de l’image" msgid "Image" msgstr "Image" +#: ckanext/canada/templates/scheming/organization/group_form.html:6 +#: ckanext/canada/templates/scheming/organization/group_form.html:8 +msgid "Update Organization" +msgstr "" + +#: ckanext/canada/templates/scheming/organization/group_form.html:12 +#: ckanext/canada/templates/scheming/organization/group_form.html:14 +msgid "Create Organization" +msgstr "" + #: ckanext/canada/templates/scheming/package/snippets/package_form.html:14 msgid "Catalogue Metadata" msgstr "Métadonnées de catalogue" @@ -3541,22 +3642,30 @@ msgstr "Êtes-vous certain de vouloir supprimer cet état?" msgid "New activity item" msgstr "Nouveau poste d’activité" -#: ckanext/canada/templates/snippets/activity_stream.html:8 -msgid "View the past 30 days of activity." -msgstr "Consulter les activités des 30 derniers jours." +#: ckanext/canada/templates/snippets/activity_type_selector.html:12 +msgid "created datastore" +msgstr "datastore créée" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:15 +msgid "changed datastore" +msgstr "datastore modifiée" + +#: ckanext/canada/templates/snippets/activity_type_selector.html:18 +msgid "deleted datastore" +msgstr "datastore supprimée" #: ckanext/canada/templates/snippets/dataset_facets.html:6 #: ckanext/canada/templates/snippets/dataset_facets.html:12 msgid "Suggested Datasets" msgstr "Jeux de données suggérés" -#: ckanext/canada/templates/snippets/facet_list.html:49 -#: ckanext/canada/templates/snippets/facet_list.html:50 +#: ckanext/canada/templates/snippets/facet_list.html:53 +#: ckanext/canada/templates/snippets/facet_list.html:54 msgid "Show less" msgstr "Afficher moins" -#: ckanext/canada/templates/snippets/facet_list.html:62 -#: ckanext/canada/templates/snippets/publish_facet.html:68 +#: ckanext/canada/templates/snippets/facet_list.html:68 +#: ckanext/canada/templates/snippets/publish_facet.html:67 msgid "There are no filters for this search" msgstr "Aucun filtre sélectionné pour cette recherche" @@ -3564,32 +3673,36 @@ msgstr "Aucun filtre sélectionné pour cette recherche" msgid "read more" msgstr "en savoir plus" -#: ckanext/canada/templates/snippets/package_item.html:60 +#: ckanext/canada/templates/snippets/package_item.html:35 +msgid "Deleted" +msgstr "Supprimer" + +#: ckanext/canada/templates/snippets/package_item.html:59 msgid "This dataset has no description" msgstr "Aucune description disponible pour cet ensemble de données" -#: ckanext/canada/templates/snippets/package_item.html:67 +#: ckanext/canada/templates/snippets/package_item.html:66 msgid "Organization:" msgstr "Organisation :" -#: ckanext/canada/templates/snippets/package_item.html:78 +#: ckanext/canada/templates/snippets/package_item.html:77 msgid "Issued by:" msgstr "Publiée par :" -#: ckanext/canada/templates/snippets/package_item.html:100 -#: ckanext/canada/templates/snippets/package_item.html:117 +#: ckanext/canada/templates/snippets/package_item.html:99 +#: ckanext/canada/templates/snippets/package_item.html:116 msgid "Status:" msgstr "État :" -#: ckanext/canada/templates/snippets/package_item.html:108 +#: ckanext/canada/templates/snippets/package_item.html:107 msgid "Date:" msgstr "Date :" -#: ckanext/canada/templates/snippets/package_item.html:120 +#: ckanext/canada/templates/snippets/package_item.html:119 msgid "Request sent to data owner – awaiting response" msgstr "Demande envoyée au propriétaire des données, en attente de réponse" -#: ckanext/canada/templates/snippets/package_item.html:127 +#: ckanext/canada/templates/snippets/package_item.html:128 msgid "Resource Formats:" msgstr "Formats des ressources :" @@ -3648,13 +3761,9 @@ msgstr "Trier par" msgid "Relevance" msgstr "pertinence" -#: ckanext/canada/templates/snippets/activities/changed_resource_view.html:8 -msgid "{actor} changed the {view_type} view {view}" -msgstr "{actor} a modifié le {view_type} de l'affichage {view}" - -#: ckanext/canada/templates/snippets/activities/new_resource_view.html:8 -msgid "{actor} added the {view_type} view {view}" -msgstr "{actor} a ajouté le {view_type} de l'affichage {view}" +#: ckanext/canada/templates/snippets/stream.html:8 +msgid "View the past 30 days of activity." +msgstr "Consulter les activités des 30 derniers jours." #: ckanext/canada/templates/snippets/cdts/header.html:21 #: ckanext/canada/templates/snippets/cdts/header.html:26 @@ -3666,10 +3775,8 @@ msgid "FAQ" msgstr "FAQ" #: ckanext/canada/templates/snippets/cdts/header.html:189 -#: ckanext/canada/templates/user/dashboard.html:4 -#: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 +#: ckanext/canada/templates/user/dashboard.html:9 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "Dashboard" msgstr "Tableau de bord" @@ -3701,44 +3808,23 @@ msgstr "Province et territoire du Canada" msgid "Are you sure you want to delete user - {name}?" msgstr "Êtes-vous sûr de vouloir supprimer le membre - {name}?" -#: ckanext/canada/templates/user/dashboard.html:4 +#: ckanext/canada/templates/user/dashboard.html:9 #: ckanext/canada/templates/user/dashboard.html:13 -#: ckanext/canada/templates/user/dashboard.html:37 -msgid "News feed" -msgstr "Fil de nouvelles" - -#: ckanext/canada/templates/user/dashboard.html:16 -msgid "Activity from items that you follow" -msgstr "Activité en lien avec les éléments que vous surveillez" +#: ckanext/canada/templates/user/dashboard.html:18 +#: ckanext/canada/templates/user/dashboard.html:22 +msgid "My Activity" +msgstr "Mon Activité" -#: ckanext/canada/templates/user/dashboard.html:30 -msgid "Add Dataset" -msgstr "Ajouter un jeu de données" - -#: ckanext/canada/templates/user/dashboard.html:38 +#: ckanext/canada/templates/user/dashboard.html:23 msgid "My Datasets" msgstr "Mes dossiers" -#: ckanext/canada/templates/user/dashboard_datasets.html:11 +#: ckanext/canada/templates/user/dashboard_datasets.html:10 #: ckanext/canada/templates/user/dashboard_datasets.html:15 -#: ckanext/canada/templates/user/dashboard_datasets.html:22 +#: ckanext/canada/templates/user/dashboard_datasets.html:19 msgid "My Records" msgstr "Mes jeux de données" -#: ckanext/canada/templates/user/dashboard_groups.html:5 -#: ckanext/canada/templates/user/dashboard_groups.html:9 -msgid "My Groups" -msgstr "Mes groupes" - -#: ckanext/canada/templates/user/dashboard_organizations.html:5 -#: ckanext/canada/templates/user/dashboard_organizations.html:9 -msgid "My Organizations" -msgstr "Mes organisations" - -#: ckanext/canada/templates/user/edit.html:7 -msgid "Manage" -msgstr "Gérer" - #: ckanext/canada/templates/user/edit_base.html:7 msgid "Edit My Profile" msgstr "Modifier mon profil" @@ -3747,35 +3833,35 @@ msgstr "Modifier mon profil" msgid "Edit Profile" msgstr "Modifier le profil" -#: ckanext/canada/templates/user/edit_user_form.html:6 +#: ckanext/canada/templates/user/edit_user_form.html:7 msgid "Change details" msgstr "Modifier les détails" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "Full name" msgstr "Nom complet" -#: ckanext/canada/templates/user/edit_user_form.html:8 +#: ckanext/canada/templates/user/edit_user_form.html:9 msgid "eg. Joe Bloggs" msgstr "Exemplar : Joe Bloggs" -#: ckanext/canada/templates/user/edit_user_form.html:9 +#: ckanext/canada/templates/user/edit_user_form.html:10 msgid "eg. joe@example.com" msgstr "Exemplar : joe@example.com" -#: ckanext/canada/templates/user/edit_user_form.html:10 +#: ckanext/canada/templates/user/edit_user_form.html:11 msgid "A little information about yourself" msgstr "Un peu d’information vous concernant" -#: ckanext/canada/templates/user/edit_user_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:13 msgid "Subscribe to notification emails" msgstr "S’abonner aux courriels de notification" -#: ckanext/canada/templates/user/edit_user_form.html:19 +#: ckanext/canada/templates/user/edit_user_form.html:20 msgid "Change password" msgstr "Changer le mot de passe" -#: ckanext/canada/templates/user/edit_user_form.html:22 +#: ckanext/canada/templates/user/edit_user_form.html:23 #: ckanext/canada/templates/user/perform_reset.html:8 msgid "password reset requirements" msgstr "" @@ -3788,30 +3874,30 @@ msgstr "" "comporter au moins 12 caractères.
  • Le mot de passe n'égale pas au " "nom d'utilisateur.
  • " -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Sysadmin Password" msgstr "Mot de passe administrateur système" -#: ckanext/canada/templates/user/edit_user_form.html:27 +#: ckanext/canada/templates/user/edit_user_form.html:28 msgid "Old Password" msgstr "Ancien mot de passe" -#: ckanext/canada/templates/user/edit_user_form.html:35 -#: ckanext/canada/templates/user/new_user_form.html:21 -#: ckanext/canada/templates/user/snippets/login_form.html:12 +#: ckanext/canada/templates/user/edit_user_form.html:36 +#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/snippets/login_form.html:33 msgid "Password" msgstr "Mot de passe" -#: ckanext/canada/templates/user/edit_user_form.html:36 -#: ckanext/canada/templates/user/new_user_form.html:24 +#: ckanext/canada/templates/user/edit_user_form.html:37 +#: ckanext/canada/templates/user/new_user_form.html:25 msgid "Confirm Password" msgstr "Confirmer le mot de passe" -#: ckanext/canada/templates/user/edit_user_form.html:42 +#: ckanext/canada/templates/user/edit_user_form.html:43 msgid "Are you sure you want to delete this User?" msgstr "Êtes-vous sûr de vouloir supprimer cet utilisateur?" -#: ckanext/canada/templates/user/edit_user_form.html:50 +#: ckanext/canada/templates/user/edit_user_form.html:51 msgid "Update Profile" msgstr "Mettre à jour le profil" @@ -3877,60 +3963,56 @@ msgstr "" "répondre aux nouvelles exigences avant de pouvoir accéder au " "registre.

    " -#: ckanext/canada/templates/user/login.html:12 -msgid "NOTE: Username and password are case sensitive." -msgstr "NOTE: Le nom d’utilisateur et mot de passe sont sensibles à la casse." - -#: ckanext/canada/templates/user/login.html:24 +#: ckanext/canada/templates/user/login.html:21 msgid "Need an account" msgstr "Besoin d’un compte" -#: ckanext/canada/templates/user/login.html:27 +#: ckanext/canada/templates/user/login.html:24 msgid "Then sign right up, it only takes a minute" msgstr "Inscrivez-vous maintenant, cela ne prend qu’une minute" -#: ckanext/canada/templates/user/login.html:29 +#: ckanext/canada/templates/user/login.html:26 #: ckanext/canada/templates/user/new.html:5 msgid "Request an Account" msgstr "Demande d’un compte" -#: ckanext/canada/templates/user/login.html:35 +#: ckanext/canada/templates/user/login.html:32 msgid "Forgotten your password?" msgstr "Réinitialiser le mot de passe" -#: ckanext/canada/templates/user/login.html:37 +#: ckanext/canada/templates/user/login.html:34 msgid "No problem, use our password recovery form to reset it" msgstr "" "Utilisez notre formulaire de récupération de mot de passe pour rétablir " "votre identité" -#: ckanext/canada/templates/user/login.html:39 +#: ckanext/canada/templates/user/login.html:36 msgid "Reset password" msgstr "Réinitialiser le mot de passe" -#: ckanext/canada/templates/user/login.html:47 +#: ckanext/canada/templates/user/login.html:44 msgid "Forgotten your username?" msgstr "Vous avez oublié votre nom d'utilisateur ?" -#: ckanext/canada/templates/user/login.html:50 +#: ckanext/canada/templates/user/login.html:47 msgid "No problem, use our username recovery form to recover it" msgstr "" "Pas de problème, utilisez notre formulaire de récupération du nom " "d'utilisateur pour le récupérer" -#: ckanext/canada/templates/user/login.html:52 +#: ckanext/canada/templates/user/login.html:49 msgid "Recover username" msgstr "Récupérer le nom d'utilisateur" -#: ckanext/canada/templates/user/login.html:67 +#: ckanext/canada/templates/user/login.html:64 msgid " Create an Account" msgstr "Créer un compte" -#: ckanext/canada/templates/user/login.html:77 +#: ckanext/canada/templates/user/login.html:74 msgid "Forgot your password?" msgstr "Réinitialiser le mot de passe" -#: ckanext/canada/templates/user/logout.html:4 +#: ckanext/canada/templates/user/logout.html:6 msgid "You are now logged out." msgstr "Vous êtes maintenant déconnecté" @@ -3966,12 +4048,12 @@ msgstr "" "compte et votre organisation et vous fera parvenir un avis. Vous pourrez " "alors commencer à ajouter des dossiers dans le registre." -#: ckanext/canada/templates/user/new_user_form.html:5 -#: ckanext/canada/templates/user/new_user_form.html:16 +#: ckanext/canada/templates/user/new_user_form.html:6 +#: ckanext/canada/templates/user/new_user_form.html:17 msgid "Please fill out this field." msgstr "Ce champ est obligatoire." -#: ckanext/canada/templates/user/new_user_form.html:8 +#: ckanext/canada/templates/user/new_user_form.html:9 msgid "" "Use only lowercase letters (a-z) and numbers (0-9) with optional hyphens " "(-) and underscores (_). Example: joe-bloggs" @@ -3980,27 +4062,27 @@ msgstr "" "facultativement, des traits d’union (-) et des traits de soulignement " "(_). Exemplar : joe-bloggs" -#: ckanext/canada/templates/user/new_user_form.html:10 +#: ckanext/canada/templates/user/new_user_form.html:11 msgid "Full Name" msgstr "Nom complet" -#: ckanext/canada/templates/user/new_user_form.html:11 +#: ckanext/canada/templates/user/new_user_form.html:12 msgid "Example: Joe Bloggs" msgstr "Exemplar : Joe Bloggs" -#: ckanext/canada/templates/user/new_user_form.html:14 +#: ckanext/canada/templates/user/new_user_form.html:15 msgid "Example: joe.bloggs@tbs-sct.gc.ca" msgstr "Exemplar : joe.bloggs@tbs-sct.gc.ca" -#: ckanext/canada/templates/user/new_user_form.html:18 +#: ckanext/canada/templates/user/new_user_form.html:19 msgid "Phone Number" msgstr "Numéro de téléphone" -#: ckanext/canada/templates/user/new_user_form.html:19 +#: ckanext/canada/templates/user/new_user_form.html:20 msgid "Example: 000 000 0000" msgstr "Exemplar : 000 000 0000" -#: ckanext/canada/templates/user/new_user_form.html:22 +#: ckanext/canada/templates/user/new_user_form.html:23 msgid "" "Password must be 12 characters or longer, and must consist of at least " "three of the following character sets: uppercase characters, lowercase " @@ -4010,11 +4092,11 @@ msgstr "" "suivants : majuscules, minuscules, chiffres, ponctuation et caractères " "spéciaux" -#: ckanext/canada/templates/user/new_user_form.html:25 +#: ckanext/canada/templates/user/new_user_form.html:26 msgid "The password must match" msgstr "Le mot de passe doit être identique" -#: ckanext/canada/templates/user/new_user_form.html:28 +#: ckanext/canada/templates/user/new_user_form.html:29 msgid "" "

    Terms and Conditions for the Open Government Registry

    " "

    Privacy Statement

    The Government of Canada is " @@ -4195,63 +4277,67 @@ msgstr "" "que vous acceptez ces conditions d’utilisation.

    Si vous " "sélectionnez \"Je n’accepte pas\" vous n’aurez pas accès au registre.

    " -#: ckanext/canada/templates/user/new_user_form.html:72 +#: ckanext/canada/templates/user/new_user_form.html:73 msgid "I agree" msgstr "J’accepte" -#: ckanext/canada/templates/user/new_user_form.html:73 +#: ckanext/canada/templates/user/new_user_form.html:74 msgid "I do not agree" msgstr "Je n’accepte pas" #: ckanext/canada/templates/user/read_base.html:14 -msgid "Edit User" -msgstr "Modifier l’utilisateur" +msgid "API Tokens" +msgstr "" + +#: ckanext/canada/templates/user/read_base.html:17 +msgid "MFA" +msgstr "" -#: ckanext/canada/templates/user/read_base.html:22 +#: ckanext/canada/templates/user/read_base.html:24 msgid "Details" msgstr "Détails" -#: ckanext/canada/templates/user/read_base.html:32 +#: ckanext/canada/templates/user/read_base.html:36 msgid "Followers:" msgstr "Suiveurs :" -#: ckanext/canada/templates/user/read_base.html:36 -msgid "Edits:" -msgstr "Modifications :" +#: ckanext/canada/templates/user/read_base.html:40 +msgid "Datasets:" +msgstr "Dossiers :" -#: ckanext/canada/templates/user/read_base.html:50 +#: ckanext/canada/templates/user/read_base.html:48 msgid "Open ID:" msgstr "Identifiant ouvert :" -#: ckanext/canada/templates/user/read_base.html:53 +#: ckanext/canada/templates/user/read_base.html:51 msgid "Username:" msgstr "Nom d’utilisateur :" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "This means only you can see this" msgstr "Cela signifie que vous êtes le seul à pouvoir le voir" -#: ckanext/canada/templates/user/read_base.html:61 -#: ckanext/canada/templates/user/read_base.html:72 +#: ckanext/canada/templates/user/read_base.html:59 +#: ckanext/canada/templates/user/read_base.html:70 msgid "Private" msgstr "Privé" -#: ckanext/canada/templates/user/read_base.html:66 +#: ckanext/canada/templates/user/read_base.html:64 msgid "Member Since" msgstr "Membre depuis" -#: ckanext/canada/templates/user/read_base.html:72 -#: ckanext/canada/templates/user/read_base.html:80 +#: ckanext/canada/templates/user/read_base.html:70 +#: ckanext/canada/templates/user/read_base.html:78 msgid "API Key" msgstr "Clé API" -#: ckanext/canada/templates/user/read_base.html:75 +#: ckanext/canada/templates/user/read_base.html:73 msgid "Show API Key" msgstr "Afficher la clé API" -#: ckanext/canada/templates/user/read_base.html:81 -#: ckanext/canada/templates/user/read_base.html:87 +#: ckanext/canada/templates/user/read_base.html:79 +#: ckanext/canada/templates/user/read_base.html:85 msgid "Close" msgstr "Fermer" @@ -4263,21 +4349,47 @@ msgstr "Récupérer votre nom d'utilisateur" msgid "Username Recovery" msgstr "Récupération du nom d'utilisateur" -#: ckanext/canada/templates/user/recover_username.html:20 +#: ckanext/canada/templates/user/recover_username.html:22 msgid "Request Recovery" msgstr "Demande de récupération" +#: ckanext/canada/templates/user/snippets/login_form.html:10 +msgid "Login failed. Incorrect username or password." +msgstr "L’authentification a échoué. Mauvais nom d’utilisateur ou mot de passe." + +#: ckanext/canada/templates/user/snippets/login_form.html:13 +msgid "Invalid code, please try again." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:16 +msgid "An unknown error occurred." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:30 +msgid "NOTE: Username and password are case sensitive." +msgstr "NOTE: Le nom d’utilisateur et mot de passe sont sensibles à la casse." + +#: ckanext/canada/templates/user/snippets/login_form.html:42 +msgid "Please enter your authenticator app generated 6-digit verification code." +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:43 +msgid "Verification code" +msgstr "" + +#: ckanext/canada/templates/user/snippets/login_form.html:47 +msgid "Need help?" +msgstr "" + #: ckanext/canada/templates/user/snippets/user_search.html:2 -#: ckanext/canada/templates/user/snippets/user_search.html:5 -#: ckanext/canada/templates/user/snippets/user_search.html:6 msgid "Search Users" msgstr "Rechercher des utilisateurs" -#: ckanext/canada/templates/xloader/resource_data.html:10 -msgid "Delete DataStore table" -msgstr "Supprimer la table DataStore" +#: ckanext/canada/templates/user/snippets/user_search.html:6 +msgid "Search users..." +msgstr "Rechercher des utilisateurs..." -#: ckanext/canada/templates/xloader/resource_data.html:22 +#: ckanext/canada/templates/xloader/resource_data.html:8 msgid "Upload to DataStore" msgstr "Télécharger vers le DataStore" @@ -6687,3 +6799,52 @@ msgstr "Télécharger vers le DataStore" #~ msgid "This field must be empty:" #~ msgstr "Cette zone doit être vide :" +#~ msgid "Unauthorized to delete resource %s" +#~ msgstr "Vous n'êtes pas autorisé à supprimer la ressource %s" + +#~ msgid "DataStore table and Data Dictionary deleted for resource %s" +#~ msgstr "" +#~ "Tableau de stockage de données et " +#~ "dictionnaire de données supprimés pour " +#~ "la ressource %s" + +#~ msgid "Purge" +#~ msgstr "Purge" + +#~ msgid "" +#~ "You're currently viewing an old version" +#~ " of this dataset. Some resources may" +#~ " no longer exist or the dataset " +#~ "may not display correctly. To see " +#~ "the current version, click here." +#~ msgstr "" +#~ "Vous consultez actuellement une ancienne " +#~ "version de ce jeu de données. Il" +#~ " se peut que certaines ressources " +#~ "n’existent plus ou que le jeu de" +#~ " données ne s’affiche pas correctement. " +#~ "Pour voir la version actuelle, cliquez" +#~ " ici." + +#~ msgid "News feed" +#~ msgstr "Fil de nouvelles" + +#~ msgid "Activity from items that you follow" +#~ msgstr "Activité en lien avec les éléments que vous surveillez" + +#~ msgid "Add Dataset" +#~ msgstr "Ajouter un jeu de données" + +#~ msgid "My Groups" +#~ msgstr "Mes groupes" + +#~ msgid "My Organizations" +#~ msgstr "Mes organisations" + +#~ msgid "Edit User" +#~ msgstr "Modifier l’utilisateur" + +#~ msgid "Edits:" +#~ msgstr "Modifications :" + diff --git a/ckanext/canada/logic.py b/ckanext/canada/logic.py index f282d8184..148f4ba58 100644 --- a/ckanext/canada/logic.py +++ b/ckanext/canada/logic.py @@ -2,6 +2,7 @@ from ckan.logic.validators import isodate, Invalid from ckan.lib.dictization import model_dictize from ckan import model +from ckanext.activity.model import Activity, activity from contextlib import contextmanager from redis import ConnectionPool, Redis @@ -196,14 +197,14 @@ def _changed_packages_activity_timestamp_since(since, limit): 'deleted resource view' activities for the whole site. ''' - q = model.Session.query(model.Activity.object_id.label('object_id'), - func.max(model.Activity.timestamp).label( + q = model.Session.query(Activity.object_id.label('object_id'), + func.max(Activity.timestamp).label( 'timestamp')) - q = q.filter(or_(model.Activity.activity_type.endswith('package'), # Package create, update, delete - model.Activity.activity_type.endswith('view'), # Resource View create, update, delete - model.Activity.activity_type.endswith('created datastore'))) # DataStore create & Data Dictionary update - q = q.filter(model.Activity.timestamp > since) - q = q.group_by(model.Activity.object_id) + q = q.filter(or_(Activity.activity_type.endswith('package'), # Package create, update, delete + Activity.activity_type.endswith('view'), # Resource View create, update, delete + Activity.activity_type.endswith('created datastore'))) # DataStore create & Data Dictionary update + q = q.filter(Activity.timestamp > since) + q = q.group_by(Activity.object_id) q = q.order_by('timestamp') return q.limit(limit) @@ -217,9 +218,9 @@ def _activities_from_user_list_since(since, limit,user_id): ''' - q = model.activity._activities_from_user_query(user_id) - q = q.order_by(model.Activity.timestamp) - q = q.filter(model.Activity.timestamp > since) + q = activity._activities_from_user_query(user_id) + q = q.order_by(Activity.timestamp) + q = q.filter(Activity.timestamp > since) return q.limit(limit) diff --git a/ckanext/canada/plugins.py b/ckanext/canada/plugins.py index d0631012f..fbd4b8aad 100755 --- a/ckanext/canada/plugins.py +++ b/ckanext/canada/plugins.py @@ -1,17 +1,23 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +from typing import Optional, Type import logging import re from flask import has_request_context import ckan.plugins as p from ckan.lib.plugins import DefaultDatasetForm, DefaultTranslation import ckan.lib.helpers as hlp -from ckan.logic import validators as logic_validators from ckanext.datastore.interfaces import IDataDictionaryForm +from ckanext.activity.logic.validators import object_id_validators from ckan.lib.app_globals import set_app_global from ckan.plugins.core import plugin_loaded +from ckan.config.middleware.flask_app import csrf +from ckanext.datatablesview.blueprint import datatablesview + +from frictionless import system, Check, Plugin as FrictionlessPlugin + from ckan.plugins.toolkit import ( g, h, @@ -29,9 +35,7 @@ from ckanext.canada import helpers from ckanext.canada import cli from ckanext.canada.pd import get_commands as get_pd_commands -from ckanext.canada import activity as act -# type_ignore_reason: importing to proc decorators -from ckanext.canada import checks # type: ignore +from ckanext.canada import checks from ckanext.canada import column_types as coltypes from ckanext.tabledesigner.interfaces import IColumnTypes from ckanext.xloader.interfaces import IXloader @@ -63,6 +67,12 @@ fq_portal_release_date_match = re.compile(r"(portal_release_date:\"\[.*\]\")") +class CanadaValidationPlugin(FrictionlessPlugin): + def select_check_class(self, type: Optional[str] = None) -> Optional[Type[Check]]: + if type == 'ds-headers': + return checks.DatastoreHeadersCheck() + + class CanadaThemePlugin(p.SingletonPlugin): p.implements(p.IConfigurer) @@ -97,6 +107,7 @@ def get_helpers(self): 'canada_check_access', 'get_user_email', 'get_loader_status_badge', + 'validation_status', 'is_user_locked', # Portal 'user_organizations', @@ -139,6 +150,7 @@ def get_helpers(self): 'search_filter_pill_link_label', 'release_date_facet_start_year', 'ckan_to_cdts_breadcrumbs', + 'available_purge_types', ]) @@ -164,7 +176,9 @@ def update_config(self, config): config['ckan.auth.user_delete_organizations'] = True config['ckan.auth.create_user_via_web'] = plugin_loaded('canada_internal') # /user/register view only on registry # Set auth settings - config['ckan.auth.roles_that_cascade_to_sub_groups'] = 'admin' + config['ckan.auth.roles_that_cascade_to_sub_groups'] = ['admin'] + + csrf.exempt(datatablesview) def before_create(self, context, resource): """ @@ -178,6 +192,18 @@ def before_update(self, context, current, resource): Want to use the methods in scheming instead of before_update. """ + def before_resource_create(self, context, resource): + """ + Override before_resource_create from CkanSecurityPlugin. + Want to use the methods in scheming instead of before_resource_create. + """ + + def before_resource_update(self, context, current, resource): + """ + Override before_resource_update from CkanSecurityPlugin. + Want to use the methods in scheming instead of before_resource_update. + """ + def get_validators(self): validators_dict = super(CanadaSecurityPlugin, self).get_validators() or {} return dict( @@ -308,7 +334,7 @@ def can_validate(self, context, resource): # IPackageController - def before_search(self, search_params): + def before_dataset_search(self, search_params): # We're going to group portal_release_date into two bins - to today and # after today. search_params['facet.range'] = 'portal_release_date' @@ -347,7 +373,7 @@ def before_search(self, search_params): # IPackageController - def after_search(self, search_results, search_params): + def after_dataset_search(self, search_results, search_params): for result in search_results.get('results', []): for extra in result.get('extras', []): if extra.get('key') in ['title_fra', 'notes_fra']: @@ -357,7 +383,7 @@ def after_search(self, search_results, search_params): # IPackageController - def before_index(self, data_dict): + def before_dataset_index(self, data_dict): kw = json.loads(data_dict.get('extras_keywords', '{}')) data_dict['keywords'] = kw.get('en', []) data_dict['keywords_fra'] = kw.get('fr', kw.get('fr-t-en', [])) @@ -435,15 +461,14 @@ def update_config(self, config): config.update({ "ckan.user_list_limit": 250 }) - # registry includes validation so use real validation presets - config['scheming.presets'] = """ -ckanext.scheming:presets.json -ckanext.fluent:presets.json -ckanext.canada:schemas/presets.yaml -""" + ( - "ckanext.validation:presets.json" if "validation" in config['ckan.plugins'] else - "ckanext.canada:schemas/validation_placeholder_presets.yaml" -) + + # CKAN 2.10 plugin loading does not allow us to set the schema + # files in update_config in a way that the load order will work fully. + scheming_presets = config.get('scheming.presets', '') + assert 'ckanext.scheming:presets.json' in scheming_presets + assert 'ckanext.fluent:presets.json' in scheming_presets + assert 'ckanext.canada:schemas/presets.yaml' in scheming_presets + assert 'ckanext.validation:presets.json' in scheming_presets # Include private datasets in Feeds config['ckan.feeds.include_private'] = True @@ -472,6 +497,9 @@ def patched_upsert_data(context, data_dict): if db.upsert_data.__name__ == 'upsert_data': db.upsert_data = patched_upsert_data + # register custom frictionless plugin + system.register('canada-validation', CanadaValidationPlugin()) + # IPackageController def create(self, pkg): """ @@ -634,43 +662,45 @@ def i18n_domain(self): # IConfigurer def update_config(self, config): config['ckan.auth.public_user_details'] = False - config['recombinant.definitions'] = """ -ckanext.canada:tables/ati.yaml -ckanext.canada:tables/briefingt.yaml -ckanext.canada:tables/qpnotes.yaml -ckanext.canada:tables/contracts.yaml -ckanext.canada:tables/contractsa.yaml -ckanext.canada:tables/grants.yaml -ckanext.canada:tables/hospitalityq.yaml -ckanext.canada:tables/reclassification.yaml -ckanext.canada:tables/travela.yaml -ckanext.canada:tables/travelq.yaml -ckanext.canada:tables/wrongdoing.yaml -ckanext.canada:tables/inventory.yaml -ckanext.canada:tables/consultations.yaml -ckanext.canada:tables/service.yaml -ckanext.canada:tables/dac.yaml -ckanext.canada:tables/nap5.yaml -ckanext.canada:tables/experiment.yaml -ckanext.canada:tables/adminaircraft.yaml - -""" + + recombinant_definitions = config.get('recombinant.definitions', '') + assert 'ckanext.canada:tables/ati.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/briefingt.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/qpnotes.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/contracts.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/contractsa.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/grants.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/hospitalityq.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/reclassification.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/travela.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/travelq.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/wrongdoing.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/inventory.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/consultations.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/service.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/dac.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/nap5.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/experiment.yaml' in recombinant_definitions + assert 'ckanext.canada:tables/adminaircraft.yaml' in recombinant_definitions + config['ckan.search.show_all_types'] = True config['ckan.gravatar_default'] = 'disabled' config['search.facets.limit'] = 200 # because org list - if 'validation' not in config.get('scheming.presets', ''): - config['scheming.presets'] = """ -ckanext.scheming:presets.json -ckanext.fluent:presets.json -ckanext.canada:schemas/presets.yaml -ckanext.canada:schemas/validation_placeholder_presets.yaml -""" - config['scheming.dataset_schemas'] = """ -ckanext.canada:schemas/dataset.yaml -ckanext.canada:schemas/info.yaml -ckanext.canada:schemas/prop.yaml -""" - config['scheming.organization_schemas'] = 'ckanext.canada:schemas/organization.yaml' + + scheming_presets = config.get('scheming.presets', '') + if 'validation' not in scheming_presets: + assert 'ckanext.scheming:presets.json' in scheming_presets + assert 'ckanext.fluent:presets.json' in scheming_presets + assert 'ckanext.canada:schemas/presets.yaml' in scheming_presets + assert 'ckanext.canada:schemas/validation_placeholder_presets.yaml' in scheming_presets + + scheming_dataset_schemas = config.get('scheming.dataset_schemas', '') + assert 'ckanext.canada:schemas/dataset.yaml' in scheming_dataset_schemas + assert 'ckanext.canada:schemas/info.yaml' in scheming_dataset_schemas + assert 'ckanext.canada:schemas/prop.yaml' in scheming_dataset_schemas + + scheming_organization_schemas = config.get('scheming.organization_schemas', '') + assert 'ckanext.canada:schemas/organization.yaml' in scheming_organization_schemas # Pretty output for Feeds config['ckan.feeds.pretty'] = True @@ -689,10 +719,11 @@ def update_config(self, config): # migration from `canada_activity` and `ckanext-extendedactivity` - Aug 2022 # migrated from `ckan` canada fork for resource view activities - Jan 2024 - logic_validators.object_id_validators.update({ - 'new resource view': logic_validators.package_id_exists, - 'changed resource view': logic_validators.package_id_exists, - 'deleted resource view': logic_validators.package_id_exists, + # migrated from `activity` for ckan 2.10 upgrade - June 2024 + object_id_validators.update({ + 'new resource view': 'package_id_exists', + 'changed resource view': 'package_id_exists', + 'deleted resource view': 'package_id_exists', }) # IFacets @@ -733,7 +764,6 @@ def organization_facets(self, facets_dict, organization_type, # IActions def get_actions(self): return { - 'recently_changed_packages_activity_list': act.recently_changed_packages_activity_list, #TODO: Remove this action override in CKAN 2.10 upgrade 'resource_view_show': logic.canada_resource_view_show, 'resource_view_list': logic.canada_resource_view_list, 'job_list': logic.canada_job_list, @@ -748,6 +778,7 @@ def get_auth_functions(self): 'datastore_upsert': auth.datastore_upsert, 'view_org_members': auth.view_org_members, 'registry_jobs_running': auth.registry_jobs_running, + 'recently_changed_packages_activity_list': auth.recently_changed_packages_activity_list, } # IMiddleware diff --git a/ckanext/canada/public/static/img/select2x2_white.png b/ckanext/canada/public/static/img/select2x2_white.png new file mode 100644 index 000000000..ad8a299eb Binary files /dev/null and b/ckanext/canada/public/static/img/select2x2_white.png differ diff --git a/ckanext/canada/public/static/licenses.json b/ckanext/canada/public/static/licenses.json index d33309150..6337ec54c 100644 --- a/ckanext/canada/public/static/licenses.json +++ b/ckanext/canada/public/static/licenses.json @@ -7,6 +7,8 @@ "id": "ca-ogl-lgo", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - Canada", @@ -22,6 +24,8 @@ "id": "ca-odla-aldg", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Data Licence Agreement - Office of the Commissioner of Lobbying", @@ -37,6 +41,8 @@ "id": "ca-cihi-icis", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - Canadian Institute for Health Information", @@ -52,6 +58,8 @@ "id": "ca-rflo-drlf", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Reproduction of Federal Laws Order", @@ -67,6 +75,8 @@ "id": "ab-ogla", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - Alberta", @@ -82,6 +92,8 @@ "id": "ab-qptu", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Alberta Queens Printer Terms of Use", @@ -97,6 +109,8 @@ "id": "bc-oglbc", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - British Columbia", @@ -112,6 +126,8 @@ "id": "nl-oglnl", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence – Newfoundland and Labrador", @@ -127,6 +143,8 @@ "id": "ns-oglns", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence – Nova Scotia", @@ -142,6 +160,8 @@ "id": "on-oglo", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence – Ontario", @@ -157,6 +177,8 @@ "id": "pei-oglpei", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence – Prince Edward Island", @@ -172,6 +194,8 @@ "id": "nb-oglnb", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - New Brunswick", @@ -187,6 +211,8 @@ "id": "yk-oglyk", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence - Yukon", @@ -202,6 +228,8 @@ "id": "qc-cc-by", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Creative Commons 4.0 Attribution (CC-BY) licence – Quebec", @@ -217,6 +245,8 @@ "id": "sk-suudl", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Government of Saskatchewan Standard Unrestricted Use Data License (Version 2.0)", @@ -232,6 +262,8 @@ "id": "mb-omb", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "OpenMB Information and Data Use License", @@ -247,6 +279,8 @@ "id": "nwt-tno", "is_okd_compliant": false, "is_osi_compliant": false, + "od_conformance": false, + "osd_conformance": false, "maintainer": "", "status": "active", "title": "Open Government Licence Northwest Territories", diff --git a/ckanext/canada/schemas/organization.yaml b/ckanext/canada/schemas/organization.yaml index 1b28bf93a..1dfd6dfd7 100644 --- a/ckanext/canada/schemas/organization.yaml +++ b/ckanext/canada/schemas/organization.yaml @@ -41,7 +41,7 @@ fields: class: form-control display_snippet: fluent_text.html error_snippet: fluent_text.html - validators: fluent_text unicode scheming_required canada_org_title_translated_save + validators: fluent_text unicode_safe scheming_required canada_org_title_translated_save output_validators: canada_org_title_translated_output # Field = Short Form. @@ -88,7 +88,7 @@ fields: Si le ministère a une abréviation commune pour l'anglais et le français langues puis l'utiliser une fois, par ex. pour "statcan", l'URL est créée sous la forme https://registry.open.canada.ca/en/organization/statcan required: true - validators: not_empty unicode name_validator group_name_validator + validators: not_empty unicode_only name_validator group_name_validator form_attrs: readonly: true size: 45 diff --git a/ckanext/canada/schemas/presets.yaml b/ckanext/canada/schemas/presets.yaml index 5e40d3443..066c31356 100644 --- a/ckanext/canada/schemas/presets.yaml +++ b/ckanext/canada/schemas/presets.yaml @@ -17,7 +17,7 @@ presets: - preset_name: canada_dataset_id values: create_validators: canada_validate_generate_uuid - unicode name_validator package_id_does_not_exist + unicode_safe name_validator package_id_does_not_exist display_snippet: null field_name: id form_snippet: null @@ -31,7 +31,7 @@ presets: field_name: name form_snippet: null validators: if_empty_same_as(id) - unicode not_empty canada_validate_generate_uuid + unicode_safe not_empty canada_validate_generate_uuid # Field = Collection Type. # Display the English or the French Description from the Collection Type code table (refer to Data Migration), depending on the selected language. @@ -170,10 +170,10 @@ presets: required: true form_include_blank_choice: true form_select_attrs: - class: form-control + class: form-control form-select # copied from dataset_organization preset validators: scheming_required string_safe owner_org_validator - form_snippet: organization.html + form_snippet: organization_autocomplete.html # Field = Publisher - Organization Name at Publication (English). # {The organization Title at publication Time} diff --git a/ckanext/canada/strings.py b/ckanext/canada/strings.py index 387e3f376..9a0c1e58c 100644 --- a/ckanext/canada/strings.py +++ b/ckanext/canada/strings.py @@ -33,6 +33,8 @@ _("Created On") _("Choose format") _("Submit") +_("{actor} added the {view_type} view {view}") +_("{actor} changed the {view_type} view {view}") _("{actor} deleted the {view_type} view {view}") _("Request Reset") _("Create API Token") @@ -61,10 +63,11 @@ _('Promote') _('Cannot modify your own sysadmin privileges') _('Cannot modify sysadmin privileges for system user') +_('Activity type') # TODO: remove after upstream fix _('Show more') _('Hide') -_('You can use Markdown formatting here') -_("

    __bold text__

    _italic text_

    * list
    * of
    * items

    1. numbered
    2. list
    3. of items

    https://auto.link.ed/

    [Formatted Link](https://formatted.link)

    > block quote

    Please note: HTML tags are stripped out for security reasons

    ") +_('User %s deleted. You are now logged out.') # TODO: remove after upstream fix +_('User %s deleted.') # TODO: remove after upstream fix # strings from security _("Please upload a file or link to an external resource") @@ -74,6 +77,8 @@ _('Your password must consist of at least three of the following character sets: ' 'uppercase characters, lowercase characters, digits, punctuation & special characters.') _('Your password cannot be the same as your username.') +# FIXME: revise flash message +_('Your current password is too weak. Please create a new password before logging in again.') # strings from scheming _('These fields have been removed, click update below to save your changes.') @@ -86,6 +91,17 @@ _('Open Government Portal') _('Open Government Portal (staging)') +# strings from xloader +_('Delete from DataStore') +_('Are you sure you want to delete the DataStore and Data Dictionary?') +_('Confirm Delete') + +# strings from validation +_('Validation Information') +_('Validation status:') +_('Validation timestamp:') +_('Duration:') + # strings from misc triggers and recombinant tables _('Single') _('Repeatable') diff --git a/ckanext/canada/templates/admin/base.html b/ckanext/canada/templates/admin/base.html index 63f9bcc63..66bb8b1c5 100644 --- a/ckanext/canada/templates/admin/base.html +++ b/ckanext/canada/templates/admin/base.html @@ -12,7 +12,7 @@ {% if g.is_registry %} {{ h.build_nav_icon('canada.ckan_admin_index', _('Admins'), icon='user-plus') }} {{ h.build_nav_icon('user.index', _('Users'), icon='user') }} - {{ h.build_nav_icon('admin.trash', _('Trash'), icon='trash-o') }} + {{ h.build_nav_icon('admin.trash', _('Trash'), icon='trash') }} {{ h.build_nav_icon('canada.ckanadmin_publish', _('Publish Records'), icon='cloud-upload') }} {{ h.build_nav_icon('canada.ckanadmin_job_queue', _('Job Queue'), icon='tasks') }} {{ h.build_extra_admin_nav() }} diff --git a/ckanext/canada/templates/admin/index.html b/ckanext/canada/templates/admin/index.html index 3c4f63b33..316a840e0 100644 --- a/ckanext/canada/templates/admin/index.html +++ b/ckanext/canada/templates/admin/index.html @@ -4,7 +4,7 @@

    -  {{ _('Administer CKAN') }} +  {{ _('Administer CKAN') }}

    diff --git a/ckanext/canada/templates/admin/jobs.html b/ckanext/canada/templates/admin/jobs.html index a5415a0e3..453721cd4 100644 --- a/ckanext/canada/templates/admin/jobs.html +++ b/ckanext/canada/templates/admin/jobs.html @@ -20,7 +20,7 @@
      {% for job in job_list %}
    • - +

      {{ job.get('type') }}
      @@ -31,7 +31,7 @@ {% else %} {{ _('Unknown') }} {% endif %} - | {{ job.get('id') }} + | {{ job.get('id') }}

    • @@ -49,7 +49,7 @@

      -  {{ _('Job Queue') }} +  {{ _('Job Queue') }}

      diff --git a/ckanext/canada/templates/admin/publish_search.html b/ckanext/canada/templates/admin/publish_search.html index 2a3b628a0..c9dd0f649 100644 --- a/ckanext/canada/templates/admin/publish_search.html +++ b/ckanext/canada/templates/admin/publish_search.html @@ -5,36 +5,42 @@ {% asset 'canada_public/check_all' %}
      -
    {% else %}

    {{ _('There are no filters for this search') }}

    diff --git a/ckanext/canada/templates/snippets/package_item.html b/ckanext/canada/templates/snippets/package_item.html index 75edb5d6f..95173a3ea 100644 --- a/ckanext/canada/templates/snippets/package_item.html +++ b/ckanext/canada/templates/snippets/package_item.html @@ -26,12 +26,14 @@

    {% if 'title_translated' not in package %} {% set my_title = _(my_title) %} {% endif %} - {% block heading_private %} - {{ super() }} - {% endblock %} - {{ h.link_to(h.truncate(my_title, 150), h.url_for(package.type ~ '.read', id=package.name), title=my_title) }} + {% block heading_private %}{# Do not show "Private" label #}{% endblock %} + {{ h.link_to(my_title|truncate(150), h.url_for(package.type ~ '.read', id=package.name), title=my_title) }} {% block heading_meta %} - {{ super() }} + {% if package.get('state', '').startswith('draft') %} + {{ _('Draft') }} + {% elif package.get('state', '').startswith('deleted') %} + {{ _('Deleted') }} + {% endif %} {% endblock %} {% if machine_translated %} @@ -40,9 +42,6 @@

    - {% block banner %} - {{ super() }} - {% endblock %} {% block notes %} {% set notes, machine_translated = h.get_translated_t(package, 'notes') %} {% if notes %} @@ -122,18 +121,21 @@

    {% endif %} {% else %} -
    -
    - {{ _('Resource Formats:') }} -
    -
    -
      - {% for resource in h.dict_list_reduce(package.resources, 'format') %} -
    • {{ _(resource) }}
    • - {% endfor %} -
    + {% set r_formats = h.dict_list_reduce(package.resources, 'format') %} + {% if r_formats %} +
    +
    + {{ _('Resource Formats:') }} +
    +
    +
      + {% for resource in r_formats %} +
    • {{ _(resource) }}
    • + {% endfor %} +
    +
    -
    + {% endif %} {% endif %} {% endblock %}
    diff --git a/ckanext/canada/templates/snippets/publish_facet.html b/ckanext/canada/templates/snippets/publish_facet.html index 7552a710e..3128d1301 100644 --- a/ckanext/canada/templates/snippets/publish_facet.html +++ b/ckanext/canada/templates/snippets/publish_facet.html @@ -1,27 +1,28 @@ {% set title=g.facet_titles['ready_to_publish'] %} {% set name='ready_to_publish' %} {% set facet_range_name='portal_release_date' %} -{% set facet_name = title + 's' %} +{% set facet_name = title %} {% set facet_range = 'False' %} {% set facet_range_value = 'False' %} -{% if 'portal_release_date' in facet_ranges %} - {% set facet_range = facet_ranges['portal_release_date'] %} +{% set parsed_facet_range = 'False' %} +{% if facet_range_name in facet_ranges %} + {% set facet_range = facet_ranges[facet_range_name] %} {% endif %}
     {{ title or h.get_facet_title(name) }}
    -
    +
    - {% if items or facet_range != 'False' %} - {% set clear_uri = h.remove_url_param(name, extras=extras, alternative_url=alternative_url) %} - {% if facet_range_value != 'False' %} - {% set clear_uri = h.remove_url_param(facet_range_name, extras=extras, alternative_url=alternative_url) %} - {% endif %} + {% if request.args.get(facet_range_name) or request.args.get(name) %} + {% set clear_uri = h.remove_url_param([name, facet_range_name], extras=extras, alternative_url=alternative_url) %} - {% else %} + {% endif %} + {% if not items and parsed_facet_range == 'False' %}

    {{ _('There are no filters for this search') }}

    {% endif %}
    diff --git a/ckanext/canada/templates/snippets/search_form.html b/ckanext/canada/templates/snippets/search_form.html index 1f5c99b10..2e6445731 100644 --- a/ckanext/canada/templates/snippets/search_form.html +++ b/ckanext/canada/templates/snippets/search_form.html @@ -4,9 +4,9 @@ {% set placeholder = placeholder if placeholder else _('Search...') %} {% set sorting = sorting if sorting else [(_('Name Ascending'), 'name asc'), (_('Name Descending'), 'name desc')] %} {% set search_class = search_class if search_class else 'search-giant' %} -{% set sort_arg = request.params.get('sort') %} +{% set sort_arg = request.args.get('sort') %} - + {% block search_input %} {% block search_input_label %} {% if g.is_registry %} @@ -30,21 +30,23 @@

    {% endif %} {% endblock %}
    - - - {% block search_input_button %} - - {% endblock %} - +
    + + + {% block search_input_button %} + + {% endblock %} + +
    {% endblock %} @@ -58,19 +60,23 @@

    {% block search_title %} {% if not no_title %} -
    - {% if count==0 %} -
    - {% snippet 'snippets/search_result_text.html', query=query, count=count, type=type %} -
    - {% else %} -
    - {% snippet 'snippets/search_result_text.html', query=query, count=count, type=type %} -
    -
    - {% snippet "snippets/sort_by.html", sort=sort_arg %} +
    +
    +
    + {% if count==0 %} +
    + {% snippet 'snippets/search_result_text.html', query=query, count=count, type=type %} +
    + {% else %} +
    + {% snippet 'snippets/search_result_text.html', query=query, count=count, type=type %} +
    +
    + {% snippet "snippets/sort_by.html", sort=sort_arg %} +
    + {% endif %}
    - {% endif %} +
    {% endif %} {% endblock %} diff --git a/ckanext/canada/templates/snippets/sort_by.html b/ckanext/canada/templates/snippets/sort_by.html index e83c91e38..8254bd3ac 100644 --- a/ckanext/canada/templates/snippets/sort_by.html +++ b/ckanext/canada/templates/snippets/sort_by.html @@ -10,7 +10,7 @@ #}
    - {% if h.lang() == 'fr' %} diff --git a/ckanext/canada/templates/snippets/activity_stream.html b/ckanext/canada/templates/snippets/stream.html similarity index 100% rename from ckanext/canada/templates/snippets/activity_stream.html rename to ckanext/canada/templates/snippets/stream.html diff --git a/ckanext/canada/templates/user/api_tokens.html b/ckanext/canada/templates/user/api_tokens.html index a3728927f..87e6edf26 100644 --- a/ckanext/canada/templates/user/api_tokens.html +++ b/ckanext/canada/templates/user/api_tokens.html @@ -1,5 +1,7 @@ {% ckan_extends %} +{% block page_heading %}{{ user_dict.display_name }} {{ g.template_title_delimiter }} {{ super() }}{% endblock %} + {% block base_fields %}
    {{ form.input('name', label=_('Name'), is_required=True, value=data.name, error=errors.name) }} diff --git a/ckanext/canada/templates/user/confirm_delete.html b/ckanext/canada/templates/user/confirm_delete.html index 2fe6346dc..fc3da6d6d 100644 --- a/ckanext/canada/templates/user/confirm_delete.html +++ b/ckanext/canada/templates/user/confirm_delete.html @@ -8,6 +8,7 @@

    {{ _('Are you sure you want to delete user - {name}?').format(name=user_dict.name) }}

    + {{ h.csrf_input() }} diff --git a/ckanext/canada/templates/user/dashboard.html b/ckanext/canada/templates/user/dashboard.html index 803e8da47..dac33b57f 100644 --- a/ckanext/canada/templates/user/dashboard.html +++ b/ckanext/canada/templates/user/dashboard.html @@ -1,41 +1,35 @@ -{% ckan_extends %} +{% extends "user/edit_base.html" %} + +{% set user = current_user %} +{% set org_type = h.default_group_type('organization') %} +{% set group_type = h.default_group_type('group') %} +{% set dataset_type = h.default_package_type() %} {% block page_heading %} - {{ _('Dashboard') }} - {{ _('News feed') }} + {{ _('Dashboard') }} - {{ _('My Activity') }} {% endblock %} -{% block font_awesome %}{% endblock %} - -{% block primary_content_inner %} -

    -
    -
    -

    {{ _('News feed') }}

    -
    -
    -

    {{ _('Activity from items that you follow') }}

    - {% block activity_stream %} - {% snippet 'snippets/activity_stream.html', activity_stream=activity_stream %} - {% endblock %} -
    -
    -
    +{% block subtitle %} + {{ _('My Activity') }} {% endblock %} +{% block breadcrumb_content %} + {{ super() }} +
  • {% link_for _('My Activity'), named_route='activity.dashboard' %}
  • +{% endblock %} -{% block secondary_content %}{% endblock %} - -{% block add_action_content %} - {% if h.check_access('package_create') %} -
  • {% link_for _('Add Dataset'), package.type + '.new', class_="btn btn-primary", icon="plus-square" %}
  • - {% endif %} +{% block content_primary_nav %} + {{ h.build_nav_icon('activity.dashboard', _('My Activity'), icon='clock') }} + {{ h.build_nav_icon('dashboard.datasets', _('My Datasets'), icon='sitemap') }} {% endblock %} -{% block page_header %} -
    - +{% block primary_content_inner %} +
    + {% block activity_stream %} + {% snippet 'snippets/stream.html', activity_stream=dashboard_activity_stream %} + {% endblock %} + {% snippet 'snippets/pagination.html', newer_activities_url=newer_activities_url, older_activities_url=older_activities_url %}
    {% endblock %} + +{% block secondary_content %}{% endblock %} diff --git a/ckanext/canada/templates/user/dashboard_datasets.html b/ckanext/canada/templates/user/dashboard_datasets.html index 2de6108a9..fbb2e8092 100644 --- a/ckanext/canada/templates/user/dashboard_datasets.html +++ b/ckanext/canada/templates/user/dashboard_datasets.html @@ -6,6 +6,10 @@ {% endif %} {% endblock %} +{% block subtitle %} + {{ _('My Records') }} +{% endblock %} + {% block breadcrumb_content %} {{ super() }}
  • {% link_for _('My Records'), named_route='dashboard.datasets' %}
  • @@ -16,14 +20,7 @@ {% endblock %} {% block primary_content_inner %} -
    -
    -
    -

    {{ _('My Records') }}

    -
    -
    - {{ super() }} -
    -
    +
    + {{ super() }}
    {% endblock %} diff --git a/ckanext/canada/templates/user/dashboard_groups.html b/ckanext/canada/templates/user/dashboard_groups.html deleted file mode 100644 index ad2308bef..000000000 --- a/ckanext/canada/templates/user/dashboard_groups.html +++ /dev/null @@ -1,16 +0,0 @@ -{% ckan_extends %} - -{% block breadcrumb_content %} - {{ super() }} -
  • {% link_for _('My Groups'), named_route='dashboard.groups' %}
  • -{% endblock %} - -{% block page_heading %} - {{ _('Dashboard') }} - {{ _('My Groups') }} -{% endblock %} - -{% block primary_content_inner %} -
    - {{ super() }} -
    -{% endblock %} diff --git a/ckanext/canada/templates/user/dashboard_organizations.html b/ckanext/canada/templates/user/dashboard_organizations.html deleted file mode 100644 index c618e6b3f..000000000 --- a/ckanext/canada/templates/user/dashboard_organizations.html +++ /dev/null @@ -1,16 +0,0 @@ -{% ckan_extends %} - -{% block breadcrumb_content %} - {{ super() }} -
  • {% link_for _('My Organizations'), named_route='dashboard.organizations' %}
  • -{% endblock %} - -{% block page_heading %} - {{ _('Dashboard') }} - {{ _('My Organizations') }} -{% endblock %} - -{% block primary_content_inner %} -
    - {{ super() }} -
    -{% endblock %} diff --git a/ckanext/canada/templates/user/edit_user_form.html b/ckanext/canada/templates/user/edit_user_form.html index a654b9b20..d489de776 100644 --- a/ckanext/canada/templates/user/edit_user_form.html +++ b/ckanext/canada/templates/user/edit_user_form.html @@ -1,6 +1,7 @@ {% import 'macros/form.html' as form %} + {{ h.csrf_input() }} {{ form.errors(error_summary) }}
    {{ _('Change details') }} diff --git a/ckanext/canada/templates/user/list.html b/ckanext/canada/templates/user/list.html index 08c18f194..8d90fc2c8 100644 --- a/ckanext/canada/templates/user/list.html +++ b/ckanext/canada/templates/user/list.html @@ -89,7 +89,7 @@

    {{ _('Users') }}

    -  {{ _('Users') }} +  {{ _('Users') }}

    @@ -108,7 +108,6 @@

    {% block scripts %} {% if g.is_registry %} {% snippet 'snippets/cdts/footer_scripts.html' %} - {% asset 'canada_public/csrf' %} {% asset 'canada_public/analytics' %} {% asset 'canada_internal/user_lock' %} {% block google_analytics_footer %}{%- endblock -%} diff --git a/ckanext/canada/templates/user/login.html b/ckanext/canada/templates/user/login.html index d5aee8a41..f9f27bf70 100644 --- a/ckanext/canada/templates/user/login.html +++ b/ckanext/canada/templates/user/login.html @@ -8,9 +8,6 @@ {% block form %} {{ super() }} {% endblock %} -
    - {% trans %}NOTE: Username and password are case sensitive.{% endtrans %} -

    {% endif %} {% endblock %} diff --git a/ckanext/canada/templates/user/logout.html b/ckanext/canada/templates/user/logout.html index 4567e2398..2f00fcd59 100644 --- a/ckanext/canada/templates/user/logout.html +++ b/ckanext/canada/templates/user/logout.html @@ -1,5 +1,9 @@ {% ckan_extends %} {% block primary_content %} -

    {% trans %}You are now logged out.{% endtrans %}

    +
    +
    +

    {% trans %}You are now logged out.{% endtrans %}

    +
    +
    {% endblock %} diff --git a/ckanext/canada/templates/user/new.html b/ckanext/canada/templates/user/new.html index ea50d40b7..13cfaec16 100644 --- a/ckanext/canada/templates/user/new.html +++ b/ckanext/canada/templates/user/new.html @@ -14,7 +14,7 @@ {% block primary_content %} {% if g.is_registry %} -
    +
    {{ form | safe }}
    {% endif %} diff --git a/ckanext/canada/templates/user/new_user_form.html b/ckanext/canada/templates/user/new_user_form.html index 3373b9e5b..8ad4f444d 100644 --- a/ckanext/canada/templates/user/new_user_form.html +++ b/ckanext/canada/templates/user/new_user_form.html @@ -1,6 +1,7 @@ {% if g.is_registry %} {% import 'macros/form.html' as form %} + {{ h.csrf_input() }} {{ form.errors(error_summary) }} {% set valid_dict1={ 'oninvalid': "setCustomValidity('"+_("Please fill out this field.")+"')", 'onchange':"setCustomValidity('')", 'class': 'form-control'} %} {% set valid_dict2={ 'oninvalid': "setCustomValidity('"+_("Please enter a valid email address.")+"')", 'onchange':"setCustomValidity('')", 'class': 'form-control'} %} @@ -13,8 +14,8 @@ {% call form.input("email", id="field-email", label=_("Email"), type="email", value=data.email, error=errors.email, attrs=valid_dict2, is_required=true, classes=["control-medium"]) %} {{ form.info(_('Example: joe.bloggs@tbs-sct.gc.ca')) }} {% endcall %} - {% set format_attrs={ 'oninvalid': "setCustomValidity('"+_("Please fill out this field.")+"')", 'onchange':"setCustomValidity('')", 'data-module': 'autocomplete', 'data-module-source': '/organization/autocomplete?q=?', 'data-key': 'title', 'class':'control-medium'} %} - {{ form.input('department', id='field-department', label=_('Organization'), value=data.department, error=errors.department, attrs=format_attrs, is_required=true) }} + {% set format_attrs={ 'oninvalid': "setCustomValidity('"+_("Please fill out this field.")+"')", 'onchange':"setCustomValidity('')", 'data-module': 'autocomplete', 'data-module-source': '/organization/autocomplete?q=?', 'data-module-key': 'title', 'data-module-label': 'title', 'data-module-dropdownClass': 'org-select2-dropdown', 'data-module-containerClass': 'org-select2-container', 'data-module-tags': 'false', 'data-module-createtags': 'false', 'class':'control-medium'} %} + {{ form.input('department', id='field-department', label=_('Organization'), value=data.department, error=errors.department, attrs=format_attrs, is_required=true, placeholder=_('Search organizations...')) }} {% call form.input("phoneno", id="field-phoneno", label=_("Phone Number"), value=data.phoneno, error=errors.phoneno, classes=["control-medium"]) %} {{ form.info(_('Example: 000 000 0000')) }} {% endcall %} diff --git a/ckanext/canada/templates/user/perform_reset.html b/ckanext/canada/templates/user/perform_reset.html index 42159290f..e824c657e 100644 --- a/ckanext/canada/templates/user/perform_reset.html +++ b/ckanext/canada/templates/user/perform_reset.html @@ -2,7 +2,7 @@ {% block primary_content %} {% if g.is_registry %} -
    +

    {% trans %}password reset requirements{% endtrans %}

    diff --git a/ckanext/canada/templates/user/read_base.html b/ckanext/canada/templates/user/read_base.html index 4296c4794..3c4b0695f 100644 --- a/ckanext/canada/templates/user/read_base.html +++ b/ckanext/canada/templates/user/read_base.html @@ -8,11 +8,13 @@ {% endblock %} {% block content_primary_nav %} - {% if g.is_registry %} - {{ super () }} - {% if h.check_access('user_update', {'id': user.name}) %} - {{ h.build_nav_icon('user.edit', _('Edit User'), id=user.name) }} - {% endif %} + {{ h.build_nav_icon('user.read', h.humanize_entity_type('package', dataset_type, 'content tab') or _('Datasets'), id=user.name, icon='sitemap') }} + {{ h.build_nav_icon('user.read_organizations', h.humanize_entity_type('organization', org_type, 'content tab') or _('Organizations'), id=user.name, icon='building') }} + {% if h.check_access('api_token_list', {'user': user['name']}) %} + {{ h.build_nav_icon('user.api_tokens', _('API Tokens'), id=user.name, icon='key') }} + {% endif %} + {% if h.security_enable_totp() and h.check_access('user_update', user) %} + {{ h.build_nav_icon('mfa_user.configure_mfa', _('MFA'), id=user.name, icon='shield-alt') }} {% endif %} {% endblock %} @@ -25,46 +27,42 @@ {% block user_heading %}{% endblock %}
    {% block user_about %} - {{ super() }} + {% if about_formatted %} + {{ about_formatted }} + {% endif %} {% endblock %} {% block user_nums %}
    -
    {{ _('Followers:') }}
    -
    {{ h.SI_number_span(user.num_followers) }}
    +
    {{ _('Followers:') }}
    +
    {{ h.SI_number_span(user.num_followers) }}
    -
    {{ _('Edits:') }}
    -
    {{ h.SI_number_span(user.number_of_edits) }}
    +
    {{ _('Datasets:') }}
    +
    {{ h.SI_number_span(user.number_created_packages) }}
    {% endblock %} - {% if is_myself == false %} - {% block user_follow %} - - {% endblock %} - {% endif %} + {% block user_follow %}{% endblock %} {# disallow following, not fully fleshed out in Canada setup #} {% block user_info %}
    {% if user.name.startswith('http://') or user.name.startswith('https://') %} -
    {{ _('Open ID:') }}
    -
    {{ user.name|urlize(25) }}{# Be great if this just showed the domain #}
    +
    {{ _('Open ID:') }}
    +
    {{ user.name|urlize(25) }}{# Be great if this just showed the domain #}
    {% else %} -
    {{ _('Username:') }}
    -
    {{ user.name }}
    +
    {{ _('Username:') }}
    +
    {{ user.name }}
    {% endif %}
    {% set user_email = h.get_user_email(user.id) %} {% if user_email %}
    -
    {{ _('Email') }} {{ _('Email') }} {{ _('Private') }}
    - +
    {% endif %}
    -
    {{ _('Member Since') }}
    -
    {{ h.render_datetime(user.created) }}
    +
    {{ _('Member Since') }}
    +
    {{ h.render_datetime(user.created) }}
    {% if is_myself and user.apikey %}
    @@ -72,19 +70,19 @@ {{ _('API Key') }} {{ _('Private') }}
    - {{ _('Show API Key') }} + {{ _('Show API Key') }}