Name | ckanext-contact JSON |
Version |
2.4.3
JSON |
| download |
home_page | None |
Summary | A CKAN extension for adding popup contact forms to pages. |
upload_time | 2024-11-04 11:36:48 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.6 |
license | GPL-3.0-or-later |
keywords |
ckan
data
contact
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
|
<!--header-start-->
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://data.nhm.ac.uk/images/nhm_logo.svg">
<source media="(prefers-color-scheme: light)" srcset="https://data.nhm.ac.uk/images/nhm_logo_black.svg">
<img alt="The Natural History Museum logo." src="https://data.nhm.ac.uk/images/nhm_logo_black.svg" align="left" width="150px" height="100px" hspace="40">
</picture>
# ckanext-contact
[![Tests](https://img.shields.io/github/actions/workflow/status/NaturalHistoryMuseum/ckanext-contact/tests.yml?style=flat-square)](https://github.com/NaturalHistoryMuseum/ckanext-contact/actions/workflows/tests.yml)
[![Coveralls](https://img.shields.io/coveralls/github/NaturalHistoryMuseum/ckanext-contact/main?style=flat-square)](https://coveralls.io/github/NaturalHistoryMuseum/ckanext-contact)
[![CKAN](https://img.shields.io/badge/ckan-2.9.7-orange.svg?style=flat-square)](https://github.com/ckan/ckan)
[![Python](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8-blue.svg?style=flat-square)](https://www.python.org/)
[![Docs](https://img.shields.io/readthedocs/ckanext-contact?style=flat-square)](https://ckanext-contact.readthedocs.io)
_A CKAN extension for adding popup contact forms to pages._
<!--header-end-->
# Overview
<!--overview-start-->
Borrows much of the contact form code from [ckanext-surrey](https://github.com/CityofSurrey/ckanext-surrey).
An example can be seen on the Natural History Museum's [Data Portal](https://data.nhm.ac.uk) when clicking "_Contact dataset curator._"
This extension now includes Google's [reCAPTCHA](https://www.google.com/recaptcha) for preventing spam submissions.
<!--overview-end-->
# Installation
<!--installation-start-->
Path variables used below:
- `$INSTALL_FOLDER` (i.e. where CKAN is installed), e.g. `/usr/lib/ckan/default`
- `$CONFIG_FILE`, e.g. `/etc/ckan/default/development.ini`
## Installing from PyPI
```shell
pip install ckanext-contact
```
## Installing from source
1. Clone the repository into the `src` folder:
```shell
cd $INSTALL_FOLDER/src
git clone https://github.com/NaturalHistoryMuseum/ckanext-contact.git
```
2. Activate the virtual env:
```shell
. $INSTALL_FOLDER/bin/activate
```
3. Install via pip:
```shell
pip install $INSTALL_FOLDER/src/ckanext-contact
```
### Installing in editable mode
Installing from a `pyproject.toml` in editable mode (i.e. `pip install -e`) requires `setuptools>=64`; however, CKAN 2.9 requires `setuptools==44.1.0`. See [our CKAN fork](https://github.com/NaturalHistoryMuseum/ckan) for a version of v2.9 that uses an updated setuptools if this functionality is something you need.
## Post-install setup
1. Add 'contact' to the list of plugins in your `$CONFIG_FILE`:
```ini
ckan.plugins = ... contact
```
2. To use reCAPTCHA, you must register a site with the Google [reCAPTCHA](https://www.google.com/recaptcha) service and add your API key and secret in the [configuration](#configuration).
<!--installation-end-->
# Configuration
<!--configuration-start-->
These are the options that can be specified in your .ini config file.
## Email
| Name | Description | Default |
|--------------------------------------------|---------------------------------------------------|---------------------------------|
| `ckanext.contact.mail_to` | Email address to submit to | `email_to` |
| `ckanext.contact.recipient_name` | Name of the recipient | `ckan.site_title` |
| `ckanext.contact.subject` | Email subject for the submitted form | 'Contact/Question from visitor' |
| `ckanext.contact.add_timestamp_to_subject` | Whether to append a timestamp to the subject line | `false` |
| `ckanext.contact.subject_prefix` | A prefix to add to the subject before sending | '' |
## Recaptcha
| Name | Description | Default |
|---------------------------------------|------------------------------------------|-----------------------|
| `ckanext.contact.recaptcha_v3_key` | API key for the reCAPTCHA service. | False (i.e. disabled) |
| `ckanext.contact.recaptcha_v3_secret` | API secret for the reCAPTCHA service. | False (i.e. disabled) |
| `ckanext.contact.recaptcha_v3_action` | `data-module-action` for the form/button | |
## Other
| Name | Description | Default |
|-------------------------------|------------------------------------------------------------------------------------------------------|---------------------|
| `ckanext.contact.check_email` | Set to False to disable checking email addresses via [pyIsEmail](https://pypi.org/project/pyIsEmail) | True (i.e. enabled) |
<!--configuration-end-->
# Usage
<!--usage-start-->
Add the following HTML where you want the contact button to appear:
```html+jinja
{% set params = {...} %}
<a class="btn btn-primary" data-module="modal-contact" data-module-template="{{ h.get_contact_form_template_url(params) }}" href="{{ h.url_for('contact.form', **params) }}" title="{{ _('Contact') }}">
<i class="fas fa-envelope"></i>{{ link_text if link_text else _('CONTACT BUTTON TEXT') }}
</a>
{% asset 'ckanext-contact/main' %}
```
Where `params` is a dict with three entries: package_id, resource_id, record_id (all of which are optional).
<!--usage-end-->
# Testing
<!--testing-start-->
There is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in the `docker/` folder.
To run the tests against ckan 2.9.x on Python3:
1. Build the required images:
```shell
docker compose build
```
2. Then run the tests.
The root of the repository is mounted into the ckan container as a volume by the Docker compose
configuration, so you should only need to rebuild the ckan image if you change the extension's
dependencies.
```shell
docker compose run ckan
```
<!--testing-end-->
Raw data
{
"_id": null,
"home_page": null,
"name": "ckanext-contact",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "CKAN, data, contact",
"author": null,
"author_email": "Natural History Museum <data@nhm.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/7f/eb/d093141257d440905e1195e2dd2d6456a57dccbe452eeeedfc4d1c944347/ckanext_contact-2.4.3.tar.gz",
"platform": null,
"description": "<!--header-start-->\n<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://data.nhm.ac.uk/images/nhm_logo.svg\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://data.nhm.ac.uk/images/nhm_logo_black.svg\">\n <img alt=\"The Natural History Museum logo.\" src=\"https://data.nhm.ac.uk/images/nhm_logo_black.svg\" align=\"left\" width=\"150px\" height=\"100px\" hspace=\"40\">\n</picture>\n\n# ckanext-contact\n\n[![Tests](https://img.shields.io/github/actions/workflow/status/NaturalHistoryMuseum/ckanext-contact/tests.yml?style=flat-square)](https://github.com/NaturalHistoryMuseum/ckanext-contact/actions/workflows/tests.yml)\n[![Coveralls](https://img.shields.io/coveralls/github/NaturalHistoryMuseum/ckanext-contact/main?style=flat-square)](https://coveralls.io/github/NaturalHistoryMuseum/ckanext-contact)\n[![CKAN](https://img.shields.io/badge/ckan-2.9.7-orange.svg?style=flat-square)](https://github.com/ckan/ckan)\n[![Python](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8-blue.svg?style=flat-square)](https://www.python.org/)\n[![Docs](https://img.shields.io/readthedocs/ckanext-contact?style=flat-square)](https://ckanext-contact.readthedocs.io)\n\n_A CKAN extension for adding popup contact forms to pages._\n\n<!--header-end-->\n\n# Overview\n\n<!--overview-start-->\nBorrows much of the contact form code from [ckanext-surrey](https://github.com/CityofSurrey/ckanext-surrey).\n\nAn example can be seen on the Natural History Museum's [Data Portal](https://data.nhm.ac.uk) when clicking \"_Contact dataset curator._\"\n\nThis extension now includes Google's [reCAPTCHA](https://www.google.com/recaptcha) for preventing spam submissions.\n\n<!--overview-end-->\n\n# Installation\n\n<!--installation-start-->\nPath variables used below:\n- `$INSTALL_FOLDER` (i.e. where CKAN is installed), e.g. `/usr/lib/ckan/default`\n- `$CONFIG_FILE`, e.g. `/etc/ckan/default/development.ini`\n\n## Installing from PyPI\n\n```shell\npip install ckanext-contact\n```\n\n## Installing from source\n\n1. Clone the repository into the `src` folder:\n ```shell\n cd $INSTALL_FOLDER/src\n git clone https://github.com/NaturalHistoryMuseum/ckanext-contact.git\n ```\n\n2. Activate the virtual env:\n ```shell\n . $INSTALL_FOLDER/bin/activate\n ```\n\n3. Install via pip:\n ```shell\n pip install $INSTALL_FOLDER/src/ckanext-contact\n ```\n\n### Installing in editable mode\n\nInstalling from a `pyproject.toml` in editable mode (i.e. `pip install -e`) requires `setuptools>=64`; however, CKAN 2.9 requires `setuptools==44.1.0`. See [our CKAN fork](https://github.com/NaturalHistoryMuseum/ckan) for a version of v2.9 that uses an updated setuptools if this functionality is something you need.\n\n## Post-install setup\n\n1. Add 'contact' to the list of plugins in your `$CONFIG_FILE`:\n ```ini\n ckan.plugins = ... contact\n ```\n\n2. To use reCAPTCHA, you must register a site with the Google [reCAPTCHA](https://www.google.com/recaptcha) service and add your API key and secret in the [configuration](#configuration).\n\n<!--installation-end-->\n\n# Configuration\n\n<!--configuration-start-->\nThese are the options that can be specified in your .ini config file.\n\n## Email\n\n| Name | Description | Default |\n|--------------------------------------------|---------------------------------------------------|---------------------------------|\n| `ckanext.contact.mail_to` | Email address to submit to | `email_to` |\n| `ckanext.contact.recipient_name` | Name of the recipient | `ckan.site_title` |\n| `ckanext.contact.subject` | Email subject for the submitted form | 'Contact/Question from visitor' |\n| `ckanext.contact.add_timestamp_to_subject` | Whether to append a timestamp to the subject line | `false` |\n| `ckanext.contact.subject_prefix` | A prefix to add to the subject before sending | '' |\n\n## Recaptcha\n\n| Name | Description | Default |\n|---------------------------------------|------------------------------------------|-----------------------|\n| `ckanext.contact.recaptcha_v3_key` | API key for the reCAPTCHA service. | False (i.e. disabled) |\n| `ckanext.contact.recaptcha_v3_secret` | API secret for the reCAPTCHA service. | False (i.e. disabled) |\n| `ckanext.contact.recaptcha_v3_action` | `data-module-action` for the form/button | |\n\n## Other\n\n| Name | Description | Default |\n|-------------------------------|------------------------------------------------------------------------------------------------------|---------------------|\n| `ckanext.contact.check_email` | Set to False to disable checking email addresses via [pyIsEmail](https://pypi.org/project/pyIsEmail) | True (i.e. enabled) |\n\n<!--configuration-end-->\n\n# Usage\n\n<!--usage-start-->\nAdd the following HTML where you want the contact button to appear:\n\n```html+jinja\n{% set params = {...} %}\n\n<a class=\"btn btn-primary\" data-module=\"modal-contact\" data-module-template=\"{{ h.get_contact_form_template_url(params) }}\" href=\"{{ h.url_for('contact.form', **params) }}\" title=\"{{ _('Contact') }}\">\n <i class=\"fas fa-envelope\"></i>{{ link_text if link_text else _('CONTACT BUTTON TEXT') }}\n</a>\n\n{% asset 'ckanext-contact/main' %}\n```\n\nWhere `params` is a dict with three entries: package_id, resource_id, record_id (all of which are optional).\n\n<!--usage-end-->\n\n# Testing\n\n<!--testing-start-->\nThere is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in the `docker/` folder.\n\nTo run the tests against ckan 2.9.x on Python3:\n\n1. Build the required images:\n ```shell\n docker compose build\n ```\n\n2. Then run the tests.\n The root of the repository is mounted into the ckan container as a volume by the Docker compose\n configuration, so you should only need to rebuild the ckan image if you change the extension's\n dependencies.\n ```shell\n docker compose run ckan\n ```\n\n<!--testing-end-->\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "A CKAN extension for adding popup contact forms to pages.",
"version": "2.4.3",
"project_urls": {
"changelog": "https://github.com/NaturalHistoryMuseum/ckanext-contact/blob/main/CHANGELOG.md",
"repository": "https://github.com/NaturalHistoryMuseum/ckanext-contact"
},
"split_keywords": [
"ckan",
" data",
" contact"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a10459d6352eae3ede04639600fd24b9879e796137cf178f0d0a4e1998d76ca1",
"md5": "1167889633a80428cf7617f85440ca6e",
"sha256": "4b2276206a2f9b20c63604fb0dd984349befd9adf0fb5303883767ef5ec2e0d1"
},
"downloads": -1,
"filename": "ckanext_contact-2.4.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1167889633a80428cf7617f85440ca6e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 34002,
"upload_time": "2024-11-04T11:36:47",
"upload_time_iso_8601": "2024-11-04T11:36:47.291908Z",
"url": "https://files.pythonhosted.org/packages/a1/04/59d6352eae3ede04639600fd24b9879e796137cf178f0d0a4e1998d76ca1/ckanext_contact-2.4.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7febd093141257d440905e1195e2dd2d6456a57dccbe452eeeedfc4d1c944347",
"md5": "dd7cfe9c81a884b8705674f13c4331a6",
"sha256": "87b3dd45347ba5bf9cf10d95f1a02e8606120de5fa315c36a54116ba74c366d1"
},
"downloads": -1,
"filename": "ckanext_contact-2.4.3.tar.gz",
"has_sig": false,
"md5_digest": "dd7cfe9c81a884b8705674f13c4331a6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 30570,
"upload_time": "2024-11-04T11:36:48",
"upload_time_iso_8601": "2024-11-04T11:36:48.895762Z",
"url": "https://files.pythonhosted.org/packages/7f/eb/d093141257d440905e1195e2dd2d6456a57dccbe452eeeedfc4d1c944347/ckanext_contact-2.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-04 11:36:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NaturalHistoryMuseum",
"github_project": "ckanext-contact",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "ckanext-contact"
}