No project description provided
Project description
ckanext-comments
Add comment-trees to CKAN pages.
This plugins provides comment threads linked to any of the main CKAN entities:
- datasets
- resources
- groups
- organizations
- users.
All the features are API-first, so anything you can do via UI, can be done via API.
No changes to the WebUI are done by default. One have to include a snippet into Jinja2 template in order to show the comments on a page.
{# subject_type := package | group | resource | user #}
{% snippet 'comments/snippets/thread.html', subject_id=pkg.id, subject_type='package' %}
:info: For the datasets it also can be achieved by enabling
ckanext.comments.enable_default_dataset_comments
option.
Requirements
- python >= 3.7
- CKAN >= 2.9
Installation
To install ckanext-comments:
- Install python package
pip install ckanext-comments
-
Add
comments
to theckan.plugins
setting in your CKAN config file -
Apply database migrations
ckan db upgrade -p comments
- Add
cooments/snippets/thread.html
to yourpackage/read.html
template, like this:
{% ckan_extends %}
{% block primary_content_inner %}
{{ super() }}
{% snippet 'comments/snippets/thread.html', subject_id=pkg.id, subject_type='package' %}
{% endblock primary_content_inner %}
Config settings
# Require comment approval in order to make it visible
# (optional, default: true).
ckanext.comments.require_approval = false
# Editor(admin) can edit draft comments
# (optional, default: true).
ckanext.comments.draft_edits = true
# Author can edit own draft comments
# (optional, default: true).
ckanext.comments.draft_edits_by_author = false
# Editor(admin) can edit approved comments
# (optional, default: false).
ckanext.comments.approved_edits = false
# Author can edit own approved comments
# (optional, default: false).
ckanext.comments.approved_edits_by_author = false
# Number of reply levels that are shown on mobile layout
# (optional, default: 3).
ckanext.comments.mobile_depth_threshold = 3
# Include default thread implementation on the dataset page
# (optional, default: false).
ckanext.comments.enable_default_dataset_comments = true
# Register custom getter for a subject by providing a path to a function
# ckanext.comments.subject.{self.subject_type}_getter = path
# The function must accept an ID and return a model object
ckanext.comments.subject.question_getter = ckanext.msf_ask_question.model.question_getter
API
comments_thread_create
Create a thread for the subject.
Args:
- subject_id(str): unique ID of the commented entity
- subject_type(str:package|resource|user|group): type of the commented entity
comments_thread_show
Show the subject's thread.
Args:
- subject_id(str): unique ID of the commented entity
- subject_type(str:package|resource|user|group): type of the commented entity
- init_missing(bool, optional): return an empty thread instead of 404
- include_comments(bool, optional): show comments from the thread
- include_author(bool, optional): show authors of the comments
- combine_comments(bool, optional): combine comments into a tree-structure
- after_date(str:ISO date, optional): show comments only since the given date
comments_thread_delete
Delete the thread.
Args:
- id(str): ID of the thread
comments_comment_create
Add a comment to the thread.
Args:
- subject_id(str): unique ID of the commented entity
- subject_type(str:package|resource|user|group): type of the commented entity
- content(str): comment's message
- reply_to_id(str, optional): reply to the existing comment
- create_thread(bool, optional): create a new thread if it doesn't exist yet
comments_comment_show
Show the details of the comment
Args:
- id(str): ID of the comment
comments_comment_approve
Approve draft comment
Args:
- id(str): ID of the comment
comments_comment_delete
Remove existing comment
Args:
- id(str): ID of the comment
comments_comment_update
Update existing comment
Args:
- id(str): ID of the comment
- content(str): comment's message
Tests
To run the tests, do:
pytest
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ckanext_comments-0.3.1.post1.tar.gz
.
File metadata
- Download URL: ckanext_comments-0.3.1.post1.tar.gz
- Upload date:
- Size: 37.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e52c022badc39613b7813590f5bbf339b0031c8260a0120baf70cedae0266fb7 |
|
MD5 | 161106beee8213122c98273ad4c140ba |
|
BLAKE2b-256 | d5b0dc7648a76ba744f5767d0a6853c493902d1a674f99ff9164d06999875048 |
File details
Details for the file ckanext_comments-0.3.1.post1-py3-none-any.whl
.
File metadata
- Download URL: ckanext_comments-0.3.1.post1-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13cdd479cd950cf39b638a579ce91864ec1fbee5bec80b234f7664f3d95332eb |
|
MD5 | a075d3468c0b697c4d799708ecb4f036 |
|
BLAKE2b-256 | 2d9a931c4a2ea68e26565c392c0d889ce14e28dd2fbfeae977138d18462364f7 |