Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controllers import clean #420

Merged
merged 2 commits into from
Feb 25, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions ckan/controllers/home.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
import random

from pylons.i18n import set_lang
from pylons.i18n import _
from pylons import g, c, config, cache
import sqlalchemy.exc

import ckan.logic
import ckan.logic as logic
import ckan.lib.maintain as maintain
from ckan.lib.search import SearchError
from ckan.lib.base import *
from ckan.lib.helpers import url_for
import ckan.lib.search as search
import ckan.lib.base as base
import ckan.model as model
import ckan.lib.helpers as h

CACHE_PARAMETERS = ['__cache', '__no_cache__']

# horrible hack
dirty_cached_group_stuff = None

class HomeController(BaseController):
class HomeController(base.BaseController):
repo = model.repo

def __before__(self, action, **env):
try:
BaseController.__before__(self, action, **env)
base.BaseController.__before__(self, action, **env)
context = {'model': model, 'user': c.user or c.author}
ckan.logic.check_access('site_read', context)
except ckan.logic.NotAuthorized:
abort(401, _('Not authorized to see this page'))
logic.check_access('site_read', context)
except logic.NotAuthorized:
base.abort(401, _('Not authorized to see this page'))
except (sqlalchemy.exc.ProgrammingError,
sqlalchemy.exc.OperationalError), e:
# postgres and sqlite errors for missing tables
msg = str(e)
if ('relation' in msg and 'does not exist' in msg) or \
('no such table' in msg):
# table missing, major database problem
abort(503, _('This site is currently off-line. Database '
base.abort(503, _('This site is currently off-line. Database '
'is not initialised.'))
# TODO: send an email to the admin person (#1285)
else:
Expand All @@ -50,7 +50,7 @@ def index(self):
'sort': 'views_recent desc',
'fq': 'capacity:"public"'
}
query = ckan.logic.get_action('package_search')(
query = logic.get_action('package_search')(
context, data_dict)
c.search_facets = query['search_facets']
c.package_count = query['count']
Expand All @@ -74,14 +74,14 @@ def index(self):
if 'groups' in c.search_facets:
data_dict['groups'] = [ item['name'] for item in
c.search_facets['groups']['items'] ]
c.groups = ckan.logic.get_action('group_list')(context, data_dict)
except SearchError, se:
c.groups = logic.get_action('group_list')(context, data_dict)
except search.SearchError, se:
c.package_count = 0
c.groups = []

if c.userobj is not None:
msg = None
url = url_for(controller='user', action='edit')
url = h.url_for(controller='user', action='edit')
is_google_id = \
c.userobj.name.startswith(
'https://www.google.com/accounts/o8/id')
Expand Down Expand Up @@ -130,8 +130,8 @@ def db_to_form_schema(group_type=None):
data_dict = {'id': id}

try:
group_dict = ckan.logic.get_action('group_show')(context, data_dict)
except ckan.logic.NotFound:
group_dict = logic.get_action('group_show')(context, data_dict)
except logic.NotFound:
return None

return {'group_dict' :group_dict}
Expand Down Expand Up @@ -172,13 +172,13 @@ def db_to_form_schema(group_type=None):

# END OF DIRTYNESS

return render('home/index.html', cache_force=True)
return base.render('home/index.html', cache_force=True)

def license(self):
return render('home/license.html')
return base.render('home/license.html')

def about(self):
return render('home/about.html')
return base.render('home/about.html')

def cache(self, id):
'''Manual way to clear the caches'''
Expand Down
37 changes: 19 additions & 18 deletions ckan/controllers/revision.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
import sys
from datetime import datetime, timedelta

from pylons.i18n import get_lang
from pylons.i18n import get_lang, _
from pylons import c, request

from ckan.logic import NotAuthorized, check_access

from ckan.lib.base import *
from ckan.lib.helpers import Page
import ckan.lib.base as base
import ckan.model as model
import ckan.lib.helpers as h


class RevisionController(BaseController):
class RevisionController(base.BaseController):

def __before__(self, action, **env):
BaseController.__before__(self, action, **env)
base.BaseController.__before__(self, action, **env)

context = {'model': model, 'user': c.user or c.author}
if c.user:
Expand All @@ -26,7 +27,7 @@ def __before__(self, action, **env):
try:
check_access('site_read', context)
except NotAuthorized:
abort(401, _('Not authorized to see this page'))
base.abort(401, _('Not authorized to see this page'))

def index(self):
return self.list()
Expand Down Expand Up @@ -127,20 +128,20 @@ def list(self):
return feed.writeString('utf-8')
else:
query = model.Session.query(model.Revision)
c.page = Page(
c.page = h.Page(
collection=query,
page=request.params.get('page', 1),
url=h.pager_url,
items_per_page=20
)
return render('revision/list.html')
return base.render('revision/list.html')

def read(self, id=None):
if id is None:
abort(404)
base.abort(404)
c.revision = model.Session.query(model.Revision).get(id)
if c.revision is None:
abort(404)
base.abort(404)

pkgs = model.Session.query(model.PackageRevision).\
filter_by(revision=c.revision)
Expand All @@ -152,11 +153,11 @@ def read(self, id=None):
grps = model.Session.query(model.GroupRevision).\
filter_by(revision=c.revision)
c.groups = [grp.continuity for grp in grps]
return render('revision/read.html')
return base.render('revision/read.html')

def diff(self, id=None):
if 'diff' not in request.params or 'oldid' not in request.params:
abort(400)
base.abort(400)
c.revision_from = model.Session.query(model.Revision).get(
request.params.getone('oldid'))
c.revision_to = model.Session.query(model.Revision).get(
Expand All @@ -170,23 +171,23 @@ def diff(self, id=None):
c.group = model.Group.by_name(id)
diff = c.group.diff(c.revision_to, c.revision_from)
else:
abort(400)
base.abort(400)

c.diff = diff.items()
c.diff.sort()
return render('revision/diff.html')
return base.render('revision/diff.html')

def edit(self, id=None):
if id is None:
abort(404)
base.abort(404)
revision = model.Session.query(model.Revision).get(id)
if revision is None:
abort(404)
base.abort(404)
action = request.params.get('action', '')
if action in ['delete', 'undelete']:
# this should be at a lower level (e.g. logic layer)
if not c.revision_change_state_allowed:
abort(401)
base.abort(401)
if action == 'delete':
revision.state = model.State.DELETED
elif action == 'undelete':
Expand Down
36 changes: 17 additions & 19 deletions ckan/controllers/tag.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
from pylons.i18n import _
from pylons import config
from sqlalchemy.orm import eagerload_all
from pylons import request, c

from ckan.lib.base import *
from ckan.lib.search import query_for
from ckan.lib.helpers import AlphaPage, Page
import ckan.logic as logic
import ckan.model as model
import ckan.lib.base as base
import ckan.lib.helpers as h

from ckan.logic import NotFound, NotAuthorized
from ckan.logic import check_access, get_action

LIMIT = 25


class TagController(BaseController):
class TagController(base.BaseController):

def __before__(self, action, **env):
BaseController.__before__(self, action, **env)
base.BaseController.__before__(self, action, **env)
try:
context = {'model': model, 'user': c.user or c.author}
check_access('site_read', context)
except NotAuthorized:
abort(401, _('Not authorized to see this page'))
logic.check_access('site_read', context)
except logic.NotAuthorized:
base.abort(401, _('Not authorized to see this page'))

def index(self):
c.q = request.params.get('q', '')
Expand All @@ -37,7 +35,7 @@ def index(self):
data_dict['offset'] = (page - 1) * LIMIT
data_dict['return_objects'] = True

results = get_action('tag_list')(context, data_dict)
results = logic.get_action('tag_list')(context, data_dict)

if c.q:
c.page = h.Page(
Expand All @@ -48,23 +46,23 @@ def index(self):
)
c.page.items = results
else:
c.page = AlphaPage(
c.page = h.AlphaPage(
collection=results,
page=request.params.get('page', 'A'),
alpha_attribute='name',
other_text=_('Other'),
)

return render('tag/index.html')
return base.render('tag/index.html')

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

data_dict = {'id': id}
try:
c.tag = get_action('tag_show')(context, data_dict)
except NotFound:
abort(404, _('Tag not found'))
c.tag = logic.get_action('tag_show')(context, data_dict)
except logic.NotFound:
base.abort(404, _('Tag not found'))

return render('tag/read.html')
return base.render('tag/read.html')
13 changes: 7 additions & 6 deletions ckan/controllers/template.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from ckan.lib.base import *
from genshi.template.loader import TemplateNotFound

import ckan.lib.base as base

class TemplateController(BaseController):

class TemplateController(base.BaseController):

def view(self, url):
"""By default, the final controller tried to fulfill the request
Expand All @@ -27,12 +28,12 @@ def view(self, url):
Found)
"""
try:
return render(url)
return base.render(url)
except TemplateNotFound:
if url.endswith('.html'):
abort(404)
base.abort(404)
url += '.html'
try:
return render(url)
return base.render(url)
except TemplateNotFound:
abort(404)
base.abort(404)
5 changes: 0 additions & 5 deletions ckan/lib/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

Provides the BaseController class for subclassing.
"""
from datetime import datetime
from hashlib import md5
import logging
import os
import urllib
import time

from paste.deploy.converters import asbool
Expand All @@ -18,7 +14,6 @@
from pylons.i18n import _, ungettext, N_, gettext, ngettext
from pylons.templating import cached_template, pylons_globals
from genshi.template import MarkupTemplate
from genshi.template.base import TemplateSyntaxError
from genshi.template.text import NewTextTemplate
from webhelpers.html import literal

Expand Down