This commit is contained in:
Jari Voutilainen 2019-08-22 14:49:53 +03:00
parent 2127178146
commit 4733b00256
5 changed files with 14 additions and 12 deletions

View File

@ -1,5 +1,6 @@
from ckan.lib.cli import CkanCommand
class RatingCommand(CkanCommand):
'''
Send notification emails of datasets which have a reminder date set
@ -31,8 +32,7 @@ class RatingCommand(CkanCommand):
else:
self.log.error('Command "%s" not recognized' % (cmd,))
def init_db(self):
import ckan.model as model
from ckanext.rating.model import init_tables
init_tables(model.meta.engine)
init_tables(model.meta.engine)

View File

@ -11,6 +11,7 @@ flatten_to_string_key = logic.flatten_to_string_key
NotAuthorized = logic.NotAuthorized
abort = base.abort
class RatingController(p.toolkit.BaseController):
def submit_package_rating(self, package, rating):

View File

@ -29,7 +29,7 @@ class Rating(Base):
package_id = Column(types.UnicodeText, nullable=True, index=True)
rating = Column(types.Float, nullable=False)
user_id = Column(types.UnicodeText, nullable=True, index=True)
rater_ip = Column(types.UnicodeText) # Used for identification if user is not authenticated
rater_ip = Column(types.UnicodeText) # Used for identification if user is not authenticated
created = Column(types.DateTime, default=datetime.datetime.now)
updated = Column(types.DateTime, default=datetime.datetime.now)

View File

@ -1,6 +1,6 @@
import ckan.plugins as plugins
import ckan.plugins.toolkit as toolkit
from ckan.common import request, c, g
from ckan.common import c, g
import sqlalchemy
import ckan.model as model
@ -27,7 +27,9 @@ def sort_by_rating(sort):
c.count_pkg = model.Session.query(
sqlalchemy.func.count(model.Package.id)).\
filter(model.Package.type == 'dataset').\
filter(model.Package.private == False).\
filter(
model.Package.private == False # noqa E712
).\
filter(model.Package.state == 'active').scalar()
query = model.Session.query(
model.Package.id, model.Package.title,
@ -36,7 +38,9 @@ def sort_by_rating(sort):
label('rating_avg')).\
outerjoin(Rating, Rating.package_id == model.Package.id).\
filter(model.Package.type == 'dataset').\
filter(model.Package.private == False).\
filter(
model.Package.private == False # noqa E712
).\
filter(model.Package.state == 'active').\
group_by(model.Package.id).\
distinct()
@ -99,7 +103,7 @@ class RatingPlugin(plugins.SingletonPlugin, DefaultTranslation):
# IPackageController
def before_index(self, data_dict):
rating_dict = action.rating_package_get(None, { 'package_id': data_dict['id'] })
rating_dict = action.rating_package_get(None, {'package_id': data_dict['id']})
data_dict['rating'] = rating_dict.get('rating')
return data_dict
@ -111,7 +115,6 @@ class RatingPlugin(plugins.SingletonPlugin, DefaultTranslation):
pkg_dict['ratings_count'] = rating_dict.get('ratings_count', 0)
return pkg_dict
def after_search(self, search_results, search_params):
for pkg in search_results['results']:
@ -140,5 +143,3 @@ class RatingPlugin(plugins.SingletonPlugin, DefaultTranslation):
)
return map

View File

@ -1,5 +1,5 @@
"""Tests for plugin.py."""
import ckanext.rating.plugin as plugin
def test_plugin():
pass
pass