Personal tools
You are here: Home > Tutoriais > Python/Zope/Plone > Como adicionar o tipo de assunto no formulário de contato
Document Actions

Como adicionar o tipo de assunto no formulário de contato

by Tânia Andrea last modified 2007-10-09 01:31

Veja como adicionar um campo de tipo de assunto no formulário de contato do seu Site para um melhor filtro de e-mails

  1. 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>
    
  2. 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".
  3. 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!