Skip to content

Commit

Permalink
Merge branch '2375-demo-theme-development' into 2375-demo-theme-stable
Browse files Browse the repository at this point in the history
Conflicts:
	ckan/templates/ajax_snippets/api_info.html
	ckan/templates/package/snippets/data_api_button.html

minor changes should all be fine :)
  • Loading branch information
tobes committed Jul 25, 2012
2 parents e90bd04 + b3f0433 commit 0a2d598
Show file tree
Hide file tree
Showing 136 changed files with 5,896 additions and 1,017 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -31,6 +31,9 @@ fl_notes.txt
# local symlinks
ckan/public/scripts/ckanjs.js

# custom style
ckan/public/base/less/custom.less

# nosetest coverage output
.coverage
htmlcov/*
Expand Down
19 changes: 10 additions & 9 deletions ckan/config/environment.py
Expand Up @@ -23,7 +23,7 @@

log = logging.getLogger(__name__)

import lib.jinja_tags
import lib.jinja_extensions

# Suppress benign warning 'Unbuilt egg for setuptools'
warnings.simplefilter('ignore', UserWarning)
Expand Down Expand Up @@ -291,20 +291,21 @@ def genshi_lookup_attr(cls, obj, key):

# Create Jinja2 environment
env = config['pylons.app_globals'].jinja_env = Environment(
loader=lib.jinja_tags.CkanFileSystemLoader(template_paths,
loader=lib.jinja_extensions.CkanFileSystemLoader(template_paths,
ckan_base_path=paths['templates'][0]),
autoescape=True,
extensions=['jinja2.ext.i18n', 'jinja2.ext.do', 'jinja2.ext.with_',
lib.jinja_tags.SnippetExtension,
lib.jinja_tags.CkanExtend,
lib.jinja_tags.LinkForExtension,
lib.jinja_tags.ResourceExtension,
lib.jinja_tags.UrlForStaticExtension,
lib.jinja_tags.UrlForExtension]
lib.jinja_extensions.SnippetExtension,
lib.jinja_extensions.CkanExtend,
lib.jinja_extensions.LinkForExtension,
lib.jinja_extensions.ResourceExtension,
lib.jinja_extensions.UrlForStaticExtension,
lib.jinja_extensions.UrlForExtension]
)
env.install_gettext_callables(_, N_, newstyle=True)
# custom filters
env.filters['empty_and_escape'] = lib.jinja_tags.empty_and_escape
env.filters['empty_and_escape'] = lib.jinja_extensions.empty_and_escape
env.filters['truncate'] = lib.jinja_extensions.truncate
config['pylons.app_globals'].jinja_env = env

# CONFIGURATION OPTIONS HERE (note: all config options will override
Expand Down
4 changes: 4 additions & 0 deletions ckan/config/routing.py
Expand Up @@ -162,6 +162,8 @@ def make_map():
m.connect('related_new', '/dataset/{id}/related/new', action='new')
m.connect('related_edit', '/dataset/{id}/related/edit/{related_id}',
action='edit')
m.connect('related_delete', '/dataset/{id}/related/delete/{related_id}',
action='delete')
m.connect('related_list', '/dataset/{id}/related', action='list')

with SubMapper(map, controller='package') as m:
Expand Down Expand Up @@ -200,6 +202,8 @@ def make_map():
m.connect('/dataset/{id}', action='read')
m.connect('/dataset/{id}/resource/{resource_id}',
action='resource_read')
m.connect('/dataset/{id}/resource_delete/{resource_id}',
action='resource_delete')
m.connect('/dataset/{id}/resource_edit/{resource_id}',
action='resource_edit')
m.connect('/dataset/{id}/resource/{resource_id}/download',
Expand Down
10 changes: 4 additions & 6 deletions ckan/controllers/group.py
Expand Up @@ -255,8 +255,6 @@ def new(self, data=None, errors=None, error_summary=None):
return render(self._new_template(group_type))

def edit(self, id, data=None, errors=None, error_summary=None):
if 'delete' in request.params:
return self.delete(id)
group_type = self._get_group_type(id.split('@')[0])
context = {'model': model, 'session': model.Session,
'user': c.user or c.author, 'extras_as_string': True,
Expand Down Expand Up @@ -384,19 +382,19 @@ def authz(self, id):
return render('group/authz.html')

def delete(self, id):
context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

if 'cancel' in request.params:
h.redirect_to(controller='group', action='edit', id=id)

context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

try:
check_access('group_delete', context, {'id': id})
except NotAuthorized:
abort(401, _('Unauthorized to delete group %s') % '')

try:
if request.params.get('confirm_delete') == 'yes':
if request.method == 'POST':
get_action('group_delete')(context, {'id': id})
h.flash_notice(_('Group has been deleted.'))
h.redirect_to(controller='group', action='index')
Expand Down
1 change: 1 addition & 0 deletions ckan/controllers/home.py
Expand Up @@ -117,6 +117,7 @@ def _form_to_db_schema(group_type=None):

group_type = _get_group_type(id.split('@')[0])
context = {'model': model, 'session': model.Session,
'ignore_auth': True,
'user': c.user or c.author,
'schema': _form_to_db_schema(group_type=group_type),
'for_view': True}
Expand Down
54 changes: 43 additions & 11 deletions ckan/controllers/package.py
Expand Up @@ -444,9 +444,8 @@ def new(self, data=None, errors=None, error_summary=None):
return self._save_new(context)

data = data or clean_dict(unflatten(tuplize_dict(parse_params(
request.params, ignore_keys=CACHE_PARAMETERS))))
request.POST, ignore_keys=CACHE_PARAMETERS))))
c.resources_json = json.dumps(data.get('resources', []))

# convert tags if not supplied in data
if data and not data.get('tag_string'):
data['tag_string'] = ', '.join(
Expand All @@ -462,6 +461,11 @@ def new(self, data=None, errors=None, error_summary=None):
elif data.get('state') == 'draft-complete':
stage = ['active', 'complete', 'complete']

# if we are creating from a group then this allows the group to be
# set automatically
data['group_id'] = request.params.get('group') or \
request.params.get('groups__0__id')

vars = {'data': data, 'errors': errors,
'error_summary': error_summary,
'action': 'new', 'stage': stage}
Expand Down Expand Up @@ -526,8 +530,7 @@ def resource_edit(self, id, resource_id, data=None, errors=None,
try:
resource_dict = get_action('resource_show')(context, {'id': resource_id})
except NotFound:
# FIXME need to handle this
pass
abort(404, _('Resource not found'))
c.pkg_dict = pkg_dict
c.resource = resource_dict
# set the form action
Expand Down Expand Up @@ -568,7 +571,7 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
data_provided = True
break

if not data_provided:
if not data_provided and save_action != "go-dataset-complete":
if save_action == 'go-dataset':
# go to final stage of adddataset
redirect(h.url_for(controller='package',
Expand Down Expand Up @@ -608,6 +611,10 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
# go to first stage of add dataset
redirect(h.url_for(controller='package',
action='edit', id=id))
elif save_action == 'go-dataset-complete':
# go to first stage of add dataset
redirect(h.url_for(controller='package',
action='read', id=id))
else:
# add more resources
redirect(h.url_for(controller='package',
Expand All @@ -625,7 +632,7 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
vars['pkg_dict'] = pkg_dict
if pkg_dict['state'] == 'draft':
vars['stage'] = ['complete', 'active']
else:
elif pkg_dict['state'] == 'draft-complete':
vars['stage'] = ['complete', 'active', 'complete']
return render('package/new_resource.html', extra_vars=vars)

Expand Down Expand Up @@ -684,8 +691,6 @@ def new_metadata(self, id, data=None, errors=None, error_summary=None):
return render('package/new_package_metadata.html', extra_vars=vars)

def edit(self, id, data=None, errors=None, error_summary=None):
if 'delete' in request.params:
return self.delete(id)
package_type = self._get_package_type(id)
context = {'model': model, 'session': model.Session,
'user': c.user or c.author, 'extras_as_string': True,
Expand Down Expand Up @@ -1001,19 +1006,20 @@ def authz(self, id):
return render('package/authz.html')

def delete(self, id):
context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

if 'cancel' in request.params:
h.redirect_to(controller='package', action='edit', id=id)

context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

try:
check_access('package_delete', context, {'id': id})
except NotAuthorized:
abort(401, _('Unauthorized to delete package %s') % '')

try:
if request.params.get('confirm_delete') == 'yes':
if request.method == 'POST':
get_action('package_delete')(context, {'id': id})
h.flash_notice(_('Dataset has been deleted.'))
h.redirect_to(controller='package', action='search')
Expand All @@ -1024,6 +1030,32 @@ def delete(self, id):
abort(404, _('Dataset not found'))
return render('package/confirm_delete.html')

def resource_delete(self, id, resource_id):

if 'cancel' in request.params:
h.redirect_to(controller='package', action='resource_edit', resource_id=resource_id, id=id)

context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

try:
check_access('package_delete', context, {'id': id})
except NotAuthorized:
abort(401, _('Unauthorized to delete package %s') % '')

try:
if request.method == 'POST':
get_action('resource_delete')(context, {'id': resource_id})
h.flash_notice(_('Resource has been deleted.'))
h.redirect_to(controller='package', action='read', id=id)
c.resource_dict = get_action('resource_show')(context, {'id': resource_id})
c.pkg_id = id
except NotAuthorized:
abort(401, _('Unauthorized to delete resource %s') % '')
except NotFound:
abort(404, _('Resource not found'))
return render('package/confirm_delete_resource.html')

def autocomplete(self):
# DEPRECATED in favour of /api/2/util/dataset/autocomplete
q = unicode(request.params.get('q', ''))
Expand Down
29 changes: 28 additions & 1 deletion ckan/controllers/related.py
Expand Up @@ -123,7 +123,34 @@ def _edit_or_new(self, id, related_id, is_edit):
"paper": "Paper",
"visualization": "Visualization"
}

c.pkg_id = id
vars = {'data': data, 'errors': errors, 'error_summary': error_summary}
c.form = base.render("related/edit_form.html", extra_vars=vars)
return base.render(tpl)

def delete(self, id, related_id):

if 'cancel' in base.request.params:
h.redirect_to(controller='related', action='edit',
id=id, related_id=related_id)

context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

try:
logic.check_access('related_delete', context, {'id': id})
except logic.NotAuthorized:
base.abort(401, _('Unauthorized to delete package %s') % '')

try:
if base.request.method == 'POST':
logic.get_action('related_delete')(context, {'id': related_id})
h.flash_notice(_('Related item has been deleted.'))
h.redirect_to(controller='package', action='read', id=id)
c.related_dict = logic.get_action('related_show')(context, {'id': related_id})
c.pkg_id = id
except logic.NotAuthorized:
base.abort(401, _('Unauthorized to delete related item %s') % '')
except logic.NotFound:
base.abort(404, _('Related item not found'))
return base.render('related/confirm_delete.html')

0 comments on commit 0a2d598

Please sign in to comment.