Package: ckanext-contact
ckanext-contactA CKAN extension for adding popup contact forms to pages.OverviewBorrows much of the contact form code fromckanext-surrey.An example can be seen on the Natural History Museum'sData Portalwhen clicking "Contact dataset curator."This extension now includes Google'sreCAPTCHAfor preventing spam submissions.InstallationPath 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.iniInstalling from PyPIpipinstallckanext-contactInstalling from sourceClone the repository into thesrcfolder:cd$INSTALL_FOLDER/src
gitclonehttps://github.com/NaturalHistoryMuseum/ckanext-contact.gitActivate the virtual env:.$INSTALL_FOLDER/bin/activateInstall via pip:pipinstall$INSTALL_FOLDER/src/ckanext-contactInstalling in editable modeInstalling from apyproject.tomlin editable mode (i.e.pip install -e) requiressetuptools>=64; however, CKAN 2.9 requiressetuptools==44.1.0. Seeour CKAN forkfor a version of v2.9 that uses an updated setuptools if this functionality is something you need.Post-install setupAdd 'contact' to the list of plugins in your$CONFIG_FILE:ckan.plugins=... contactTo use reCAPTCHA, you must register a site with the GooglereCAPTCHAservice and add your API key and secret in theconfiguration.ConfigurationThese are the options that can be specified in your .ini config file.EmailNameDescriptionDefaultckanext.contact.mail_toEmail address to submit toemail_tockanext.contact.recipient_nameName of the recipientckan.site_titleckanext.contact.subjectEmail subject for the submitted form'Contact/Question from visitor'ckanext.contact.add_timestamp_to_subjectWhether to append a timestamp to the subject linefalseckanext.contact.subject_prefixA prefix to add to the subject before sending''RecaptchaNameDescriptionDefaultckanext.contact.recaptcha_v3_keyAPI key for the reCAPTCHA service.False (i.e. disabled)ckanext.contact.recaptcha_v3_secretAPI secret for the reCAPTCHA service.False (i.e. disabled)ckanext.contact.recaptcha_v3_actiondata-module-actionfor the form/buttonOtherNameDescriptionDefaultckanext.contact.check_emailSet to False to disable checking email addresses viapyIsEmailTrue (i.e. enabled)UsageAdd the following HTML where you want the contact button to appear:{%setparams={...}%}<aclass="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')}}"><iclass="fas fa-envelope"></i>{{link_textiflink_textelse_('CONTACT BUTTON TEXT')}}</a>{%asset'ckanext-contact/main'%}Whereparamsis a dict with three entries: package_id, resource_id, record_id (all of which are optional).TestingThere is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in thedocker/folder.To run the tests against ckan 2.9.x on Python3:Build the required images:docker-composebuildThen 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-composerunckan