Skip to content

Commit

Permalink
[#638] Clean up some imports and remove OrderedDict redefine
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Mar 15, 2013
1 parent 3aa15b2 commit ff05a0a
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 80 deletions.
61 changes: 33 additions & 28 deletions ckan/controllers/group.py
Expand Up @@ -4,32 +4,37 @@
import datetime
from urllib import urlencode

from ckan.lib.base import BaseController, c, model, request, render, g
from ckan.lib.base import ValidationException, abort, gettext
from pylons.i18n import get_lang

import ckan.lib.base as base
from pylons.i18n import get_lang, _
import ckan.lib.helpers as h
import ckan.lib.maintain as maintain
from ckan.lib.navl.dictization_functions import DataError, unflatten, validate
from ckan.logic import NotFound, NotAuthorized, ValidationError
from ckan.logic import check_access, get_action
from ckan.logic import tuplize_dict, clean_dict, parse_params
import ckan.logic.action.get
import ckan.lib.navl.dictization_functions as dict_fns
import ckan.logic as logic
import ckan.lib.search as search
import ckan.new_authz

from ckan.lib.plugins import lookup_group_plugin
import ckan.model as model
import ckan.new_authz as new_authz
import ckan.lib.plugins
import ckan.plugins as plugins

try:
from collections import OrderedDict # 2.7
except ImportError:
from sqlalchemy.util import OrderedDict
from ckan.common import OrderedDict, c, g, request, _

log = logging.getLogger(__name__)

render = base.render
abort = base.abort

NotFound = logic.NotFound
NotAuthorized = logic.NotAuthorized
ValidationError = logic.ValidationError
check_access = logic.check_access
get_action = logic.get_action
tuplize_dict = logic.tuplize_dict
clean_dict = logic.clean_dict
parse_params = logic.parse_params

lookup_group_plugin = ckan.lib.plugins.lookup_group_plugin

class GroupController(BaseController):
class GroupController(base.BaseController):

group_type = 'group'

Expand Down Expand Up @@ -207,7 +212,7 @@ def _read(self, id, limit):

# c.group_admins is used by CKAN's legacy (Genshi) templates only,
# if we drop support for those then we can delete this line.
c.group_admins = ckan.new_authz.get_group_or_org_admin_ids(c.group.id)
c.group_admins = new_authz.get_group_or_org_admin_ids(c.group.id)

try:
page = int(request.params.get('page', 1))
Expand Down Expand Up @@ -483,7 +488,7 @@ def _get_group_type(self, id):

def _save_new(self, context, group_type=None):
try:
data_dict = clean_dict(unflatten(
data_dict = clean_dict(dict_fns.unflatten(
tuplize_dict(parse_params(request.params))))
data_dict['type'] = group_type or 'group'
context['message'] = data_dict.get('log_message', '')
Expand All @@ -496,7 +501,7 @@ def _save_new(self, context, group_type=None):
abort(401, _('Unauthorized to read group %s') % '')
except NotFound, e:
abort(404, _('Group not found'))
except DataError:
except dict_fns.DataError:
abort(400, _(u'Integrity Error'))
except ValidationError, e:
errors = e.error_dict
Expand All @@ -514,7 +519,7 @@ def _force_reindex(self, grp):

def _save_edit(self, id, context):
try:
data_dict = clean_dict(unflatten(
data_dict = clean_dict(dict_fns.unflatten(
tuplize_dict(parse_params(request.params))))
context['message'] = data_dict.get('log_message', '')
data_dict['id'] = id
Expand All @@ -529,7 +534,7 @@ def _save_edit(self, id, context):
abort(401, _('Unauthorized to read group %s') % id)
except NotFound, e:
abort(404, _('Group not found'))
except DataError:
except dict_fns.DataError:
abort(400, _(u'Integrity Error'))
except ValidationError, e:
errors = e.error_dict
Expand All @@ -553,7 +558,7 @@ def authz(self, id):
c.authz_editable = False
if not c.authz_editable:
abort(401,
gettext('User %r not authorized to edit %s authorizations') %
_('User %r not authorized to edit %s authorizations') %
(c.user, id))

roles = self._handle_update_of_authz(group)
Expand Down Expand Up @@ -608,7 +613,7 @@ def member_new(self, id):
#self._check_access('group_delete', context, {'id': id})
try:
if request.method == 'POST':
data_dict = clean_dict(unflatten(
data_dict = clean_dict(dict_fns.unflatten(
tuplize_dict(parse_params(request.params))))
data_dict['id'] = id
c.group_dict = self._action('group_member_create')(context, data_dict)
Expand All @@ -617,7 +622,7 @@ def member_new(self, id):
user = request.params.get('user')
if user:
c.user_dict = get_action('user_show')(context, {'id': user})
c.user_role = ckan.new_authz.users_role_for_group_or_org(id, user) or 'member'
c.user_role = new_authz.users_role_for_group_or_org(id, user) or 'member'
else:
c.user_role = 'member'
c.group_dict = self._action('group_show')(context, {'id': id})
Expand Down Expand Up @@ -809,7 +814,7 @@ def followers(self, id):

def admins(self, id):
c.group_dict = self._get_group_dict(id)
c.admins = ckan.new_authz.get_group_or_org_admin_ids(id)
c.admins = new_authz.get_group_or_org_admin_ids(id)
return render(self._admins_template(c.group_dict['type']))

def about(self, id):
Expand Down Expand Up @@ -842,7 +847,7 @@ def _update(self, fs, group_name, group_id):
validation = fs.validate()
if not validation:
c.form = self._render_edit_form(fs)
raise ValidationException(fs)
raise base.ValidationException(fs)

try:
fs.sync()
Expand All @@ -856,7 +861,7 @@ def _update_authz(self, fs):
validation = fs.validate()
if not validation:
c.form = self._render_edit_form(fs)
raise ValidationException(fs)
raise base.ValidationException(fs)
try:
fs.sync()
except Exception, inst:
Expand Down
87 changes: 42 additions & 45 deletions ckan/controllers/package.py
Expand Up @@ -3,46 +3,43 @@
import datetime

from pylons import config
from pylons.i18n import _
from genshi.template import MarkupTemplate
from genshi.template.text import NewTextTemplate
from paste.deploy.converters import asbool

from ckan.logic import get_action, check_access
from ckan.lib.base import (request,
render,
BaseController,
model,
abort, g, c)
from ckan.lib.base import response, redirect, gettext
import ckan.logic as logic
import ckan.lib.base as base
import ckan.lib.maintain as maintain
from ckan.lib.package_saver import PackageSaver, ValidationException
from ckan.lib.navl.dictization_functions import DataError, unflatten, validate
from ckan.logic import NotFound, NotAuthorized, ValidationError
from ckan.logic import (tuplize_dict,
clean_dict,
parse_params,
flatten_to_string_key)
from ckan.lib.i18n import get_lang
import ckan.rating
import ckan.misc
import ckan.lib.package_saver as package_saver
import ckan.lib.i18n as i18n
import ckan.lib.navl.dictization_functions as dict_fns
import ckan.lib.accept as accept
import ckan.lib.helpers as h
import ckan.model as model
import ckan.lib.datapreview as datapreview
import ckan.plugins as plugins
from home import CACHE_PARAMETERS

from ckan.lib.plugins import lookup_package_plugin
import ckan.lib.plugins
import ckan.plugins as p


try:
from collections import OrderedDict # 2.7
except ImportError:
from sqlalchemy.util import OrderedDict
from ckan.common import OrderedDict, _, json, request, c, g, response
from home import CACHE_PARAMETERS

log = logging.getLogger(__name__)

render = base.render
abort = base.abort
redirect = base.redirect

NotFound = logic.NotFound
NotAuthorized = logic.NotAuthorized
ValidationError = logic.ValidationError
check_access = logic.check_access
get_action = logic.get_action
tuplize_dict = logic.tuplize_dict
clean_dict = logic.clean_dict
parse_params = logic.parse_params
flatten_to_string_key = logic.flatten_to_string_key

lookup_group_plugin = ckan.lib.plugins.lookup_group_plugin

def _encode_params(params):
return [(k, v.encode('utf-8') if isinstance(v, basestring) else str(v))
Expand All @@ -62,7 +59,7 @@ def search_url(params, package_type=None):
return url_with_params(url, params)


class PackageController(BaseController):
class PackageController(base.BaseController):

def _package_form(self, package_type=None):
return lookup_package_plugin(package_type).package_form()
Expand Down Expand Up @@ -245,7 +242,7 @@ def pager_url(q=None, page=None):
facets[facet] = facet

# Facet titles
for plugin in plugins.PluginImplementations(plugins.IFacets):
for plugin in p.PluginImplementations(p.IFacets):
facets = plugin.dataset_facets(facets, package_type)

c.facet_titles = facets
Expand Down Expand Up @@ -363,7 +360,7 @@ def read(self, id, format='html'):
self._setup_template_variables(context, {'id': id},
package_type=package_type)

PackageSaver().render_package(c.pkg_dict, context)
package_saver.PackageSaver().render_package(c.pkg_dict, context)

template = self._read_template(package_type)
template = template[:template.index('.') + 1] + format
Expand All @@ -388,7 +385,7 @@ def comments(self, id):
c.current_package_id = c.pkg.id

#render the package
PackageSaver().render_package(c.pkg_dict)
package_saver.PackageSaver().render_package(c.pkg_dict)
return render(self._comments_template(package_type))

def history(self, id):
Expand Down Expand Up @@ -435,7 +432,7 @@ def history(self, id):
id=c.pkg_dict['name']),
description=_(u'Recent changes to CKAN Dataset: ') +
(c.pkg_dict['title'] or ''),
language=unicode(get_lang()),
language=unicode(i18n.get_lang()),
)
for revision_dict in c.pkg_revisions:
revision_date = h.date_str_to_datetime(
Expand Down Expand Up @@ -489,7 +486,7 @@ def new(self, data=None, errors=None, error_summary=None):
if context['save'] and not data:
return self._save_new(context, package_type=package_type)

data = data or clean_dict(unflatten(tuplize_dict(parse_params(
data = data or clean_dict(dict_fns.unflatten(tuplize_dict(parse_params(
request.params, ignore_keys=CACHE_PARAMETERS))))
c.resources_json = h.json.dumps(data.get('resources', []))
# convert tags if not supplied in data
Expand Down Expand Up @@ -533,7 +530,7 @@ def new(self, data=None, errors=None, error_summary=None):
def resource_edit(self, id, resource_id, data=None, errors=None,
error_summary=None):
if request.method == 'POST' and not data:
data = data or clean_dict(unflatten(tuplize_dict(parse_params(
data = data or clean_dict(dict_fns.unflatten(tuplize_dict(parse_params(
request.POST))))
# we don't want to include save as it is part of the form
del data['save']
Expand Down Expand Up @@ -598,7 +595,7 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
forms. '''
if request.method == 'POST' and not data:
save_action = request.params.get('save')
data = data or clean_dict(unflatten(tuplize_dict(parse_params(
data = data or clean_dict(dict_fns.unflatten(tuplize_dict(parse_params(
request.POST))))
# we don't want to include save as it is part of the form
del data['save']
Expand Down Expand Up @@ -688,7 +685,7 @@ def new_metadata(self, id, data=None, errors=None, error_summary=None):

if request.method == 'POST' and not data:
save_action = request.params.get('save')
data = data or clean_dict(unflatten(tuplize_dict(parse_params(
data = data or clean_dict(dict_fns.unflatten(tuplize_dict(parse_params(
request.POST))))
# we don't want to include save as it is part of the form
del data['save']
Expand Down Expand Up @@ -816,7 +813,7 @@ def read_ajax(self, id, revision=None):
data = get_action('package_show')(context, {'id': id})
schema = self._db_to_form_schema(package_type=package_type)
if schema:
data, errors = validate(data, schema)
data, errors = dict_fns.validate(data, schema)
except NotAuthorized:
abort(401, _('Unauthorized to read package %s') % '')
except NotFound:
Expand Down Expand Up @@ -894,7 +891,7 @@ def _save_new(self, context, package_type=None):
context['api_version'] = 3
from ckan.lib.search import SearchIndexError
try:
data_dict = clean_dict(unflatten(
data_dict = clean_dict(dict_fns.unflatten(
tuplize_dict(parse_params(request.POST))))
if ckan_phase:
# prevent clearing of groups etc
Expand Down Expand Up @@ -943,7 +940,7 @@ def _save_new(self, context, package_type=None):
abort(401, _('Unauthorized to read package %s') % '')
except NotFound, e:
abort(404, _('Dataset not found'))
except DataError:
except dict_fns.DataError:
abort(400, _(u'Integrity Error'))
except SearchIndexError, e:
try:
Expand All @@ -969,7 +966,7 @@ def _save_edit(self, name_or_id, context, package_type=None):
log.debug('Package save request name: %s POST: %r',
name_or_id, request.POST)
try:
data_dict = clean_dict(unflatten(
data_dict = clean_dict(dict_fns.unflatten(
tuplize_dict(parse_params(request.POST))))
if '_ckan_phase' in data_dict:
# we allow partial updates to not destroy existing resources
Expand All @@ -994,7 +991,7 @@ def _save_edit(self, name_or_id, context, package_type=None):
abort(401, _('Unauthorized to read package %s') % id)
except NotFound, e:
abort(404, _('Dataset not found'))
except DataError:
except dict_fns.DataError:
abort(400, _(u'Integrity Error'))
except SearchIndexError, e:
try:
Expand Down Expand Up @@ -1039,7 +1036,7 @@ def _adjust_license_id_options(self, pkg, fs):
def authz(self, id):
pkg = model.Package.get(id)
if pkg is None:
abort(404, gettext('Dataset not found'))
abort(404, _('Dataset not found'))
# needed to add in the tab bar to the top of the auth page
c.pkg = pkg
c.pkgname = pkg.name
Expand All @@ -1053,7 +1050,7 @@ def authz(self, id):
except NotAuthorized:
c.authz_editable = False
if not c.authz_editable:
abort(401, gettext('User %r not authorized to edit %s '
abort(401, _('User %r not authorized to edit %s '
'authorizations') % (c.user, id))

roles = self._handle_update_of_authz(pkg)
Expand Down Expand Up @@ -1166,7 +1163,7 @@ def _update_authz(self, fs):
validation = fs.validate()
if not validation:
c.form = self._render_edit_form(fs, request.params)
raise ValidationException(fs)
raise package_saver.ValidationException(fs)
try:
fs.sync()
except Exception, inst:
Expand Down Expand Up @@ -1414,7 +1411,7 @@ def resource_datapreview(self, id, resource_id):
plugin = plugins_that_can_preview[0]
plugin.setup_template_variables(context, data_dict)

c.resource_json = h.json.dumps(c.resource)
c.resource_json = json.dumps(c.resource)

except NotFound:
abort(404, _('Resource not found'))
Expand Down

0 comments on commit ff05a0a

Please sign in to comment.