TailorDev Contact A simple contact form for your django projects.
Project description
TailorDev Contact
=================
A customizable contact form for your django projects.
You will find the documentation of this project on [readthedocs](http://django-tailordev-contact.readthedocs.org/).
## Dependencies
For now, Django>=1.5 is the only dependency for this project to run on production, with python>=2.6. Currently, this application is not compatible with python 3.3. We are working on it.
## Installation
To install TailorDev Contact, use pip:
$ pip install django-tailordev-contact
If you intend to test or improve this application, first clone this repository and install the local dependencies:
$ pip install -r requirements/local.txt
## Configuration
Add `td_contact` and its dependencies to your `INSTALLED_APPS`:
INSTALLED_APPS = (
...
'td_contact',
...
)
Add `td_contact` urls to your project url patterns:
urlpatterns = patterns('',
...
url(r'^contact/', include('td_contact.urls')),
...
)
Set your `td_contact` rules in your `settings.py`, by adding something like:
# Contact form
TD_CONTACT_FORM_RULES = {
'default': {
'prefix': "[Foo:contact]",
'subject': "General informations",
'to': ('contact@foo.com', 'ceo@foo.com'),
},
'partner': {
'prefix': "[Foo:partner]",
'subject': "Partnership opportunity",
'to': ('partner@foo.com', ),
},
'jobs': {
'prefix': "[Foo:jobs]",
'subject': "Job opportunity",
'to': ('jobs@foo.com', ),
},
}
`TD_CONTACT_FORM_RULES` is a simple dictionary where each key defines a new rule. Each rule is also a dictionary defining the email prefix & subject and the recipient list.
> **Important note** : when a contact form has been successfully filled, the user is redirected to the website home page. Thereby, we use the [django messages framework](https://docs.djangoproject.com/en/1.5/ref/contrib/messages/) to inform our user of its request status. Remember to enable messages and add something like the following to your base template DOM:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li data-alert{% if message.tags %} class="message {{ message.tags }}"{% endif %}>
{{ message }}
<a href="#" class="close">×</a>
</li>
{% endfor %}
</ul>
{% endif %}
This example works with the [zurb foundation framework](http://foundation.zurb.com/). Feel free to adapt this for your favorite framework.
## Urls
TailorDev Contact form defines 3 urls you may use in your templates:
### `contact_form_rule`
This url has been designed to initialize your form with your own rule, *e.g.*:
{% url 'contact_form_rule' 'jobs' %}
### `user_contact_form_by_slug` and `user_contact_form_by_pk`
Depending on your application, people may want to contact a registered user directly and you want an elegant url to point to. To do so, use the `user_contact_form_by_slug` in your templates, *e.g.*:
{% url 'user_contact_form_by_slug' myuser.slug %}
Alternatively, use the `user_contact_form_by_id` in your templates, like:
{% url 'user_contact_form_by_pk' myuser.pk %}
### `contact_form`
This base url points to your contact form. Nothing more to add.
## Templates
### Using the default templates
If you want to use our default templates, feel free to do so. But please note that:
* You should create a base template to inherit from, visible as `_layouts/base.html`
* Your form will appear in a `content` block
* Two partial templates must be customized `contact/partials/contact_recipient.html` and `contact/partials/aside.html`
### Using your own template(s)
The template-to-override used to render the form is visible as `contact/form.html`. The core part of the template may looks like:
<div class="form_wrapper">
<h1>{% trans "Contact" %}</h1>
{% if recipient %}
{% include "contact/partials/contact_recipient.html" %}
{% endif %}
<form action="" method="post" class="custom">
{% csrf_token %}
{% for field in form %}
{% if field.is_hidden %}
{{ field }}
{% else %}
<div class="field_wrapper">
<div class="field{% if field.field.required %} required{% endif %}">
<label {% if field.errors %}class="error"{% endif %}>{{ field.label }}</label>
{{ field }}
{% if field.errors %}
<small class="error">{{ field.errors }}</small>
{% endif %}
</div>
</div>
{% endif %}
{% endfor %}
<button type="submit" />{% trans "Send message" %}</button>
</form>
</div>
## Running the Tests
You can run the tests with via:
python setup.py test
or:
python runtests.py
### Code coverage
To estimate the project coverage:
coverage run --source='td_contact' runtests.py
coverage report -m
=================
A customizable contact form for your django projects.
You will find the documentation of this project on [readthedocs](http://django-tailordev-contact.readthedocs.org/).
## Dependencies
For now, Django>=1.5 is the only dependency for this project to run on production, with python>=2.6. Currently, this application is not compatible with python 3.3. We are working on it.
## Installation
To install TailorDev Contact, use pip:
$ pip install django-tailordev-contact
If you intend to test or improve this application, first clone this repository and install the local dependencies:
$ pip install -r requirements/local.txt
## Configuration
Add `td_contact` and its dependencies to your `INSTALLED_APPS`:
INSTALLED_APPS = (
...
'td_contact',
...
)
Add `td_contact` urls to your project url patterns:
urlpatterns = patterns('',
...
url(r'^contact/', include('td_contact.urls')),
...
)
Set your `td_contact` rules in your `settings.py`, by adding something like:
# Contact form
TD_CONTACT_FORM_RULES = {
'default': {
'prefix': "[Foo:contact]",
'subject': "General informations",
'to': ('contact@foo.com', 'ceo@foo.com'),
},
'partner': {
'prefix': "[Foo:partner]",
'subject': "Partnership opportunity",
'to': ('partner@foo.com', ),
},
'jobs': {
'prefix': "[Foo:jobs]",
'subject': "Job opportunity",
'to': ('jobs@foo.com', ),
},
}
`TD_CONTACT_FORM_RULES` is a simple dictionary where each key defines a new rule. Each rule is also a dictionary defining the email prefix & subject and the recipient list.
> **Important note** : when a contact form has been successfully filled, the user is redirected to the website home page. Thereby, we use the [django messages framework](https://docs.djangoproject.com/en/1.5/ref/contrib/messages/) to inform our user of its request status. Remember to enable messages and add something like the following to your base template DOM:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li data-alert{% if message.tags %} class="message {{ message.tags }}"{% endif %}>
{{ message }}
<a href="#" class="close">×</a>
</li>
{% endfor %}
</ul>
{% endif %}
This example works with the [zurb foundation framework](http://foundation.zurb.com/). Feel free to adapt this for your favorite framework.
## Urls
TailorDev Contact form defines 3 urls you may use in your templates:
### `contact_form_rule`
This url has been designed to initialize your form with your own rule, *e.g.*:
{% url 'contact_form_rule' 'jobs' %}
### `user_contact_form_by_slug` and `user_contact_form_by_pk`
Depending on your application, people may want to contact a registered user directly and you want an elegant url to point to. To do so, use the `user_contact_form_by_slug` in your templates, *e.g.*:
{% url 'user_contact_form_by_slug' myuser.slug %}
Alternatively, use the `user_contact_form_by_id` in your templates, like:
{% url 'user_contact_form_by_pk' myuser.pk %}
### `contact_form`
This base url points to your contact form. Nothing more to add.
## Templates
### Using the default templates
If you want to use our default templates, feel free to do so. But please note that:
* You should create a base template to inherit from, visible as `_layouts/base.html`
* Your form will appear in a `content` block
* Two partial templates must be customized `contact/partials/contact_recipient.html` and `contact/partials/aside.html`
### Using your own template(s)
The template-to-override used to render the form is visible as `contact/form.html`. The core part of the template may looks like:
<div class="form_wrapper">
<h1>{% trans "Contact" %}</h1>
{% if recipient %}
{% include "contact/partials/contact_recipient.html" %}
{% endif %}
<form action="" method="post" class="custom">
{% csrf_token %}
{% for field in form %}
{% if field.is_hidden %}
{{ field }}
{% else %}
<div class="field_wrapper">
<div class="field{% if field.field.required %} required{% endif %}">
<label {% if field.errors %}class="error"{% endif %}>{{ field.label }}</label>
{{ field }}
{% if field.errors %}
<small class="error">{{ field.errors }}</small>
{% endif %}
</div>
</div>
{% endif %}
{% endfor %}
<button type="submit" />{% trans "Send message" %}</button>
</form>
</div>
## Running the Tests
You can run the tests with via:
python setup.py test
or:
python runtests.py
### Code coverage
To estimate the project coverage:
coverage run --source='td_contact' runtests.py
coverage report -m
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
Close
Hashes for django-tailordev-contact-0.3.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | aab710be22a11d5be9ffaaf437c313cd6219ebccc63c7f5ede0bb83cb6f3b7cd |
|
MD5 | bbe306f915cffe796d277373f53db875 |
|
BLAKE2b-256 | 714c23ba4cafaa5e41125b2c635bb7ff8d13d82ddfb3309edab3d9682cf317ba |