Skip to content

Commit

Permalink
Merge sixodp_scheming to sixodp
Browse files Browse the repository at this point in the history
  • Loading branch information
Zharktas committed Dec 19, 2022
1 parent 87465d1 commit 9108404
Show file tree
Hide file tree
Showing 99 changed files with 7,454 additions and 8,798 deletions.
8 changes: 4 additions & 4 deletions ansible/roles/ckan-config/templates/ckan.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ ckan.feeds.author_link =

scheming.presets = ckanext.scheming:presets.json
ckanext.fluent:presets.json
ckanext.sixodp_scheming:presets.json
ckanext.sixodp:presets.json

scheming.dataset_schemas = ckanext.sixodp_scheming.schemas:dataset.json
scheming.dataset_schemas = ckanext.sixodp.schemas:dataset.json
ckanext.sixodp_showcase.schemas:showcase.json

scheming.group_schemas = ckanext.sixodp_scheming.schemas:group.json
scheming.group_schemas = ckanext.sixodp.schemas:group.json
ckanext.collection.schemas:collection.json

licenses_group_url = file://{{ckanext_sync_path}}/ckanext-sixodp_scheming/ckanext/sixodp_scheming/licenses/licenses.json
licenses_group_url = file://{{ckanext_sync_path}}/ckanext-sixodp/ckanext/sixodp/licenses/licenses.json

ckanext.sixodp.cms_site_url = {{ cms_site_url }}
ckanext.sixodp.wp_api_base_url = /wp-json/wp/v2
Expand Down
2 changes: 0 additions & 2 deletions ansible/vars/environment-specific/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ wordpress_users:
email: admin@localhost.localdomain

ckan_extensions:
- ckanext-sixodp_scheming
- ckanext-sixodp
- ckanext-sixodp_showcase
- ckanext-scheming
Expand Down Expand Up @@ -128,7 +127,6 @@ enabled_ckan_extensions:
- disqus
- datastore
- datasetcopy
- sixodp_scheming
- scheming_datasets
- scheming_groups
- fluent
Expand Down
2 changes: 0 additions & 2 deletions ansible/vars/environment-specific/generic-qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ ckan_admins:
- "{{ ckan_users.harvest.username }}"

ckan_extensions:
- ckanext-sixodp_scheming
- ckanext-sixodp
- ckanext-sixodp_showcase
- ckanext-scheming
Expand Down Expand Up @@ -145,7 +144,6 @@ enabled_ckan_extensions:
- disqus
- datastore
- datasetcopy
- sixodp_scheming
- scheming_datasets
- scheming_groups
- fluent
Expand Down
2 changes: 0 additions & 2 deletions ansible/vars/environment-specific/vagrant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ ckan_admins:
- "{{ ckan_users.harvest.username }}"

ckan_extensions:
- ckanext-sixodp_scheming
- ckanext-sixodp
- ckanext-sixodp_showcase
- ckanext-scheming
Expand Down Expand Up @@ -131,7 +130,6 @@ enabled_ckan_extensions:
- disqus
- datastore
- datasetcopy
- sixodp_scheming
- scheming_datasets
- scheming_groups
- fluent
Expand Down
5 changes: 3 additions & 2 deletions ckanext/ckanext-sixodp/.tx/config
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[main]
host = https://www.transifex.com

[sixodp.ckanext-sixodp]
[o:6aika-dataportal:p:sixodp:r:ckanext-sixodp]
file_filter = ckanext/sixodp/i18n/<lang>/LC_MESSAGES/ckanext-sixodp.po
source_file = ckanext/sixodp/i18n/ckanext-sixodp.pot
source_lang = en
type = PO
type = PO

140 changes: 139 additions & 1 deletion ckanext/ckanext-sixodp/ckanext/sixodp/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import ckan.plugins.toolkit as tk
from ckan.model.package import Package
from ckan.lib.dictization.model_dictize import group_list_dictize
from ckan.plugins import toolkit

from ckanext.scheming.helpers import lang
from ckan.common import _, c
Expand Down Expand Up @@ -327,4 +328,141 @@ def get_created_or_updated(pkg_or_res):
return newer

def get_cookiehub_domain_code():
return config.get('ckanext.sixodp.cookiehub_domain_code')
return config.get('ckanext.sixodp.cookiehub_domain_code')



def call_toolkit_function(fn, args, kwargs):
return getattr(toolkit,fn)(*args, **kwargs)


def add_locale_to_source(kwargs, locale):
copy = kwargs.copy()
source = copy.get('data-module-source', None)
if source:
copy.update({'data-module-source': source + '_' + locale})
return copy
return copy

def get_current_lang():
return i18n.get_lang()


def scheming_field_only_default_required(field, lang):

if field and field.get('only_default_lang_required') and lang == config.get('ckan.locale_default', 'en'):
return True

return False

def get_current_date():
import datetime
return datetime.date.today().strftime("%d.%m.%Y")

def get_package_groups_by_type(package_id, group_type):
context = {'model': model, 'session': model.Session,
'for_view': True, 'use_cache': False}

group_list = []

data_dict = {
'all_fields': True,
'include_extras': True,
'type': group_type
}

groups = logic.get_action('group_list')(context, data_dict)

try:
pkg_obj = Package.get(package_id)
pkg_group_ids = set(group['id'] for group in group_list_dictize(pkg_obj.get_groups(group_type, None), context))
group_list = [group
for group in groups if
group['id'] in pkg_group_ids]
except (NotFound):
abort(404, _('Dataset not found'))

return group_list


def get_lang_prefix():
language = i18n.get_lang()
if language in _LOCALE_ALIASES:
language = _LOCALE_ALIASES[language]

return language

def get_translated_or_default_locale(data_dict, field):
language = i18n.get_lang()
if language in _LOCALE_ALIASES:
language = _LOCALE_ALIASES[language]

try:
value = data_dict[field+'_translated'][language]
if value:
return value
else:
return data_dict[field+'_translated'][config.get('ckan.locale_default', 'en')]
except KeyError:
return data_dict.get(field, '')


def show_qa():

from ckan.plugins import plugin_loaded

if plugin_loaded('qa'):
return True

return False


def scheming_category_list(args):
from ckan.logic import NotFound
# FIXME: sometimes this might return 0 categories if in development

try:
context = {'model': model, 'session': model.Session, 'ignore_auth': True}
group_ids = get_action('group_list')(context, {})
except NotFound:
return None
else:
category_list = []

# filter groups to those user is allowed to edit
group_authz = get_action('group_list_authz')({
'model': model, 'session': model.Session, 'user': c.user
}, {})

user_group_ids = set(group[u'name'] for group in group_authz)
group_ids = [group for group in group_ids if group in user_group_ids]

for group in group_ids:
try:
context = {'model': model, 'session': model.Session, 'ignore_auth': True}
group_details = get_action('group_show')(context, {'id': group})
except Exception as e:
log.error(e)
return None

category_list.append({
"value": group,
"label": group_details.get('title')
})

return category_list


def check_group_selected(val, data):
log.info(val)
log.info(data)

if filter(lambda x: x['name'] == val, data):
return True
return False


def get_field_from_schema(schema, field_name):

field = next(field for field in schema.get('dataset_fields', []) if field.get('field_name') == field_name)
return field
Loading

0 comments on commit 9108404

Please sign in to comment.