Skip to main content

No project description provided

Project description

Tests

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:

  1. Install python package
pip install ckanext-comments
  1. Add comments to the ckan.plugins setting in your CKAN config file

  2. Apply database migrations

ckan db upgrade -p comments
  1. Add cooments/snippets/thread.html to your package/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

AGPL

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext-comments-0.3.0.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

ckanext_comments-0.3.0-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

Details for the file ckanext-comments-0.3.0.tar.gz.

File metadata

  • Download URL: ckanext-comments-0.3.0.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.9

File hashes

Hashes for ckanext-comments-0.3.0.tar.gz
Algorithm Hash digest
SHA256 15086ed5c0c3e393576cf8a7dacbebda6e2c65f988c4c77bed7e67114a813b1f
MD5 652fd466903a11ee3413840cbc968a5b
BLAKE2b-256 47c916f36284f199dd745d833312fa885f74fe58840096544e4d85107f83bc07

See more details on using hashes here.

Provenance

File details

Details for the file ckanext_comments-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ckanext_comments-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52a0cf9ff61b98ceda9f24a9bb58e1a4cdb3aa026eed78270d3384b9762bc26c
MD5 ba39a032f971274a487b5740f42e8120
BLAKE2b-256 aca35363903596c1360f9e05a7c24e18005363fc269af9c4c248979e9a8e5f85

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page