Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: sitescripts/formmail/README.md

Issue 29984580: Issue 4413 - Merge formmail.py and formmail2.py (Closed) Base URL: https://hg.adblockplus.org/sitescripts/
Left Patch Set: Continue writing README Created Jan. 18, 2019, 7:51 p.m.
Right Patch Set: Nits & formatting on README Created Jan. 23, 2019, 9:35 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « .sitescripts.example ('k') | sitescripts/formmail/template/eyeo.mail » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 # formmail 1 # formmail
2 2
3 The web handler that extracts form data from a POST request, uses it to 3 The web handler that extracts form data from a POST request, uses it to
4 populate an email template and then sends the produced email to a configured 4 populate an email template and then sends the produced email to a configured
5 list of addresses. 5 list of addresses.
6 6
7 ## Dependencies 7 ## Dependencies
8 8
9 * [Python 2.7](https://www.python.org/download/releases/2.7/) 9 * [Python 2.7](https://www.python.org/download/releases/2.7/)
10 * [Jinja2](http://jinja.pocoo.org/docs/2.10/intro/) 10 * [Jinja2](http://jinja.pocoo.org/docs/2.10/intro/)
11 * Other packages are required for testing, please see the list of 'deps' in 11 * Other packages are required for testing, please see the list of 'deps' in
12 [`tox.ini`](../../tox.ini) 12 [`tox.ini`](../../tox.ini)
13 13
14 ## Running the web handler 14 ## Running the web handler
15 15
16 Normally, the formmail web handler is run by the multiplexer, and configured 16 Normally, the formmail web handler is run by the multiplexer, and configured
17 via the sitescripts config file. Please refer to the main [README](../../README. md) 17 via the sitescripts config file. Please refer to the main
18 for more information about the multiplexer and configuring `sitescripts.ini`. 18 [README](../../README.md) for more information about the multiplexer and
19 configuring `sitescripts.ini`.
19 20
20 In order to activate this handler, add the following line to the multiplexer 21 In order to activate this handler, add the following line to the multiplexer
21 config file: 22 config file:
22 23
23 [multiplexer] 24 [multiplexer]
24 sitescripts.formmail.web.formmail = 25 sitescripts.formmail.web.formmail =
25 26
26 ## Configuring the web handler 27 ## Configuring the web handler
27 28
28 `formmail.py` can handle multiple URLs and forms. Each URL will correspond to a 29 `formmail.py` can handle multiple URLs and forms. Each URL will correspond to a
29 group of config variables that all start with the same prefix, for example: 30 group of config variables that all start with the same prefix, for example:
30 handler1. These variables are configured in the [formmail] section of the 31 handler1. These variables are configured in the [formmail] section of the
31 config file. 32 config file.
32 33
33 The URL of the form, where the POST request comes from: 34 The URL of the form, where the POST request comes from:
34 35
35 [formmail] 36 [formmail]
36 handler1.url=formmail/test/apply/submit 37 handler1.url = formmail/test/apply/submit
37 38
38 The CSV file into which all submissions will be saved (optional): 39 The CSV file into which all submissions will be saved (optional):
39 40
40 handler1.csv_log = /var/log/something.csv_log 41 handler1.csv_log = /var/log/handler1-log.csv
rhowell 2019/01/18 20:08:07 Does the spacing around the `=` matter? This is th
Vasily Kuznetsov 2019/01/21 13:54:18 AFAIK it doesn't. This is parsed by python ConfigP
rhowell 2019/01/22 22:53:54 Done.
41 42
42 The Jinja2 template for the email. This is where the recipient email addresses 43 The Jinja2 template for the email. This is where the recipient email addresses
43 are entered. [(See an example email template.)](formmail/test/template/test.mail ): 44 are entered.
45 [(See an example email template here.)](formmail/test/template/test.mail)
44 46
45 handler1.template=formmail/test/template/test.mail 47 handler1.template = formmail/handler1/mail-template.tmpl
46 48
47 The `handler1.fields.xxx` subgroup includes the descriptions of the form fields: 49 The `handler1.fields.xxx` subgroup includes the descriptions of the form
50 fields, and these must match the fields on the form. These are the fields
51 expected in the POST request and then made available to the template. Each
52 variable in the group defines a field and its value can be:
53 * "mandatory" (which makes the field mandatory)
54 * and/or "email" (which makes the field an email)
55 * or it can be empty (just a normal optional field).
48 56
49 handler1.fields.email=mandatory, email 57 For mandatory fields we can also set "group-name.fields.field-name.mandatory"
50 handler1.fields.email.mandatory=You failed the email test 58 to override the error message that will be returned by the handler if the field
51 handler1.fields.email.email=You failed the email validation 59 was empty. Likewise for email fields we can define
52 handler1.fields.non_mandatory_email=email 60 "group-name.fields.field-name.email" to set the error message that's returned
53 handler1.fields.non_mandatory_message= 61 if the content of the field doesn't look like an email. See an example:
54 handler1.fields.mandatory=mandatory 62
63 handler1.fields.email = mandatory, email
64 handler1.fields.email.mandatory = You failed the email test
65 handler1.fields.email.email = You failed the email validation
66 handler1.fields.non_mandatory_email = email
67 handler1.fields.non_mandatory_message =
68 handler1.fields.mandatory = mandatory
LEFTRIGHT

Powered by Google App Engine
This is Rietveld