Skip to main content

A CKAN extension for adding popup contact forms to pages.

Project description

The Natural History Museum logo.

ckanext-contact

Tests Coveralls CKAN Python Docs

A CKAN extension for adding popup contact forms to pages.

Overview

Borrows much of the contact form code from ckanext-surrey.

An example can be seen on the Natural History Museum's Data Portal when clicking "Contact dataset curator."

This extension now includes Google's reCAPTCHA for preventing spam submissions.

Installation

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

pip install ckanext-contact

Installing from source

  1. Clone the repository into the src folder:

    cd $INSTALL_FOLDER/src
    git clone https://github.com/NaturalHistoryMuseum/ckanext-contact.git
    
  2. Activate the virtual env:

    . $INSTALL_FOLDER/bin/activate
    
  3. Install via pip:

    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 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:

    ckan.plugins = ... contact
    
  2. To use reCAPTCHA, you must register a site with the Google reCAPTCHA service and add your API key and secret in the configuration.

Configuration

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 True (i.e. enabled)

Usage

Add the following HTML where you want the contact button to appear:

{% 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).

Testing

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:

    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.

    docker compose run ckan
    

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_contact-2.4.4.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ckanext_contact-2.4.4-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

File details

Details for the file ckanext_contact-2.4.4.tar.gz.

File metadata

  • Download URL: ckanext_contact-2.4.4.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ckanext_contact-2.4.4.tar.gz
Algorithm Hash digest
SHA256 55da6293f4786c5067f8b2e03b159e0c87df87484500b2045aa2bf88f2873d4b
MD5 45d81a74b9009541daf7054894f31bb7
BLAKE2b-256 eb021b1c7e00b6aead6f73877a513261adef649e0bdbc6d0ed8be8ca4d657d66

See more details on using hashes here.

File details

Details for the file ckanext_contact-2.4.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ckanext_contact-2.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 960e6ef2836f1092a88407553c7400cc3ced1ad7a9315bc901debf3beae5c0ce
MD5 e7ab8de9f3324f188ea2d331bc6231e7
BLAKE2b-256 326ae63c08c3899d69d7d1563235387155db91b9964403c619a631bcca556a0f

See more details on using hashes here.

Supported by

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