Como adicionar o tipo de assunto no formulário de contato
Veja como adicionar um campo de tipo de assunto no formulário de contato do seu Site para um melhor filtro de e-mails
-
Acrescente o campo "Tipo do Assunto" no form contact-info:
<div class="field" tal:define="error errors/tipo_assunto|nothing" tal:attributes="class python:test(error, 'field error', 'field')"> <label for="tipo_assunto"> Tipo do Assunto </label> <span class="fieldRequired" title="Required" i18n:attributes="title title_required;" i18n:translate="label_required">(Required)</span> <div class="formHelp"> Por favor, selecione o tipo de assunto da mensagem. </div> <div tal:content="error">Validation error output>/div> <select name="tipo_assunto" id="tipo_assunto" tal:attributes="tabindex tabindex/next;"> <option value="">-- Selecione -->/option> <option value="Críticas" tal:attributes="selected python: request.get('tipo_assunto') == 'Críticas';">Críticas>/option> <option value='Dúvidas' tal:attributes="selected python: request.get('tipo_assunto') == 'Dúvidas';">Dúvidas>/option> <option value='Elogios' tal:attributes="selected python: request.get('tipo_assunto') == 'Elogios';">Elogios>/option> <option value='Sugestões' tal:attributes="selected python: request.get('tipo_assunto') == 'Sugestões';">Sugestões>/option> <option value='Outros' tal:attributes="selected python: request.get('tipo_assunto') == 'Outros';">Outros>/option> </select> </div> - Valide o novo campo (validate_site_feedback, veja aba Validator do
formulário contact-info):
if not (tipo_assunto): state.setError('tipo_assunto', _(u'Por favor, selecione um tipo de assunto'), 'tipo_assunto_required')Obs: Não esqueça de colocar "tipo_assunto" na lista de parâmetros "Parameter List".
- E, no action concatene ao título da mensagem o tipo de assunto escolhido (send_feedback_site, veja aba Action do formulário):
## make these arguments? tipo_assunto = REQUEST.get('tipo_assunto', '') ## concateno tipo_assunto e subject subject = "[Intranet FOO - "+ tipo_assunto +"] " + subject
Em resumo... As customizações podem ser feitas em:
- Formulário:
portal_skins/plone_templates/contact-info - Validator:
portal_skins/plone_form_scripts/validate_site_feedback - Action:
Failure =>contact-info
Success =>send_feedback_site - Mensagem enviada:
portal_skins/plone_templates/site_feedback_template
É isso!