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: More work on README Created Jan. 22, 2019, 10:52 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
Vasily Kuznetsov 2019/01/23 12:23:13 Nit: let's rename the file to `handler1-log.csv`,
rhowell 2019/01/23 21:40:26 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
Vasily Kuznetsov 2019/01/23 12:23:13 Nit: here we can also rename the template file to
rhowell 2019/01/23 21:40:26 Done.
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
48 and these must match the fields on the form. These are the fields expected in th e 50 fields, and these must match the fields on the form. These are the fields
49 POST request and then made available to the template. Each variable in the group 51 expected in the POST request and then made available to the template. Each
50 defines a field and its value can be: 52 variable in the group defines a field and its value can be:
51 * "mandatory" (which makes the field mandatory) 53 * "mandatory" (which makes the field mandatory)
52 * and/or "email" (which makes the field an email) 54 * and/or "email" (which makes the field an email)
53 * or it can be empty (just a normal optional field). 55 * or it can be empty (just a normal optional field).
54 56
55 For mandatory fields we can also define "group-name.fields.field-name.mandatory" 57 For mandatory fields we can also set "group-name.fields.field-name.mandatory"
56 to override the error message that will be returned by the handler if the field 58 to override the error message that will be returned by the handler if the field
57 was empty. Likewise for email fields we can define 59 was empty. Likewise for email fields we can define
58 "group-name.fields.field-name.email" to set the error message that's returned if 60 "group-name.fields.field-name.email" to set the error message that's returned
59 the content of the field doesn't look like an email. See an example: 61 if the content of the field doesn't look like an email. See an example:
60 62
61 handler1.fields.email = mandatory, email 63 handler1.fields.email = mandatory, email
62 handler1.fields.email.mandatory = You failed the email test 64 handler1.fields.email.mandatory = You failed the email test
63 handler1.fields.email.email = You failed the email validation 65 handler1.fields.email.email = You failed the email validation
64 handler1.fields.non_mandatory_email = email 66 handler1.fields.non_mandatory_email = email
65 handler1.fields.non_mandatory_message = 67 handler1.fields.non_mandatory_message =
66 handler1.fields.mandatory = mandatory 68 handler1.fields.mandatory = mandatory
LEFTRIGHT

Powered by Google App Engine
This is Rietveld