Changeset 2456 in products


Ignore:
Timestamp:
Jun 3, 2010 11:47:07 AM (14 years ago)
Author:
mylan
Message:

#194: Fixed contact-info form for plone-4. Test updated for prevent breakage on trying to send info data

Location:
quintagroup.plonecaptchas/branches/plone4/quintagroup/plonecaptchas
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonecaptchas/branches/plone4/quintagroup/plonecaptchas/skins/captchas_contact_info/contact-info.cpt

    r2044 r2456  
    44      xmlns:i18n="http://xml.zope.org/namespaces/i18n" 
    55      lang="en" 
    6       metal:use-macro="here/main_template/macros/master" 
     6      metal:use-macro="context/main_template/macros/master" 
    77      i18n:domain="plone"> 
    88 
     
    1313 
    1414<body> 
    15 <div metal:fill-slot="main" 
    16      tal:define="email_from_address portal/email_from_address"> 
     15<metal:main fill-slot="main" 
     16     tal:define="portal context/@@plone_portal_state/portal; 
     17                 email_from_address portal/email_from_address; 
     18                 isAnon context/@@plone_portal_state/anonymous;"> 
    1719 
    1820    <h1 class="documentFirstHeading" 
    1921        i18n:translate="heading_contact_form">Contact form</h1> 
    20      
    21     <p tal:content="portal/description">Site Description</p> 
     22 
     23    <div class="documentDescription"  
     24         tal:condition="portal/description" 
     25         tal:content="portal/description">Site Description</div> 
    2226 
    2327    <div tal:condition="not:email_from_address"> 
    2428 
    25         <p class="documentDescription" 
    26            i18n:translate="text_no_email_setup"> 
     29        <div i18n:translate="text_no_email_setup"> 
    2730            This site doesn't have a valid email setup, so you cannot use 
    2831            any contact forms.  
    29         </p> 
     32        </div> 
    3033 
    3134    </div> 
     35 
    3236    <div tal:condition="email_from_address"> 
    3337 
    34         <p class="documentDescription" 
    35            i18n:translate="description_contact_site_owner"> 
     38        <div i18n:translate="description_contact_site_owner"> 
    3639            Fill in this form to contact the site owners. 
    37         </p> 
     40        </div> 
     41        <div id="content-core"> 
     42            <form name="feedback_form" 
     43                class="enableAutoFocus" 
     44                action="" 
     45                method="post" 
     46                tal:define="errors options/state/getErrors" 
     47                tal:attributes="action string:$portal_url/${template/getId}"> 
    3848 
    39         <form name="feedback_form" 
    40             class="enableAutoFocus" 
    41             action="" 
    42             method="post" 
    43             tal:define="errors options/state/getErrors" 
    44             tal:attributes="action string:$here_url/$template_id"> 
     49            <tal:defs define="member context/@@plone_portal_state/member; 
     50                                  fullname python:request.get('fullname', not isAnon and member.getProperty('fullname', '') or None); 
     51                                  email python:request.get('email', not isAnon and member.getProperty('email','') or None);"> 
    4552 
    46         <fieldset> 
    47             <legend i18n:translate="legend_feedback_for_contact_info">Feedback details</legend> 
     53                <input type="hidden" name="sender_fullname" value="fullname" 
     54                       tal:attributes="value fullname" 
     55                       tal:condition="fullname" /> 
    4856 
    49         <tal:feedbackForm  
    50             tal:define="fullname python:request.get('fullname', member.getProperty('fullname', '')); 
    51                         email python:request.get('email', member.getProperty('email',''))"> 
    52             <div class="field" 
    53               tal:condition="not:fullname" 
    54               tal:define="error errors/sender_fullname|nothing" 
    55               tal:attributes="class python:test(error, 'field error', 'field')"> 
    56               <label for="sender_fullname" i18n:translate="label_sender_fullname"> 
    57                 Name 
    58               </label> 
     57                <div class="field" 
     58                     tal:condition="not:fullname" 
     59                     tal:define="error errors/sender_fullname|nothing" 
     60                     tal:attributes="class python:test(error, 'field error', 'field')"> 
     61                    <label for="sender_fullname" i18n:translate="label_sender_fullname"> 
     62                        Name 
     63                    </label> 
    5964 
    60               <div class="formHelp" i18n:translate="help_sender_fullname"> 
    61                 Please enter your full name 
    62               </div> 
     65                    <div class="formHelp" i18n:translate="help_sender_fullname"> 
     66                        Please enter your full name 
     67                    </div> 
     68                    <div tal:condition="error" 
     69                       tal:content="error">Validation error output</div> 
     70                    <input type="text"  
     71                           id="sender_fullname"  
     72                           name="sender_fullname"  
     73                           size="40"  
     74                           value=""  
     75                           tal:attributes="value request/sender_fullname|nothing" 
     76                           /> 
     77                </div> 
    6378 
    64               <div tal:content="error">Validation error output</div> 
     79                <input type="hidden" name="sender_from_address" value="email" 
     80                       tal:attributes="value email" 
     81                       tal:condition="email" /> 
    6582 
    66               <input type="text"  
    67                      id="sender_fullname"  
    68                      name="sender_fullname"  
    69                      size="40"  
    70                      value=""  
    71                      tal:attributes="value request/sender_fullname|nothing" 
    72                      /> 
    73             </div> 
    74             <input type="hidden" name="sender_fullname" value="fullname" tal:attributes="value fullname" 
    75                 tal:condition="fullname"/> 
    76             <div class="field" 
    77               tal:condition="not:email" 
    78               tal:define="error errors/sender_from_address|nothing" 
    79               tal:attributes="class python:test(error, 'field error', 'field')"> 
    80               <label for="sender_from_address" i18n:translate="label_sender_from_address"> 
    81                 E-Mail 
    82               </label> 
    83               <span class="fieldRequired" title="Required" 
    84                       i18n:attributes="title title_required;" 
    85                       i18n:translate="label_required">(Required)</span> 
     83                <div class="field" 
     84                     tal:condition="not:email" 
     85                     tal:define="error errors/sender_from_address|nothing" 
     86                     tal:attributes="class python:test(error, 'field error', 'field')"> 
    8687 
    87               <div class="formHelp" i18n:translate="help_sender_from_address"> 
    88                 Please enter your e-mail address 
    89               </div> 
     88                    <label for="sender_from_address" i18n:translate="label_sender_from_address"> 
     89                        E-Mail 
     90                    </label> 
    9091 
    91               <div tal:content="error">Validation error output</div> 
     92                    <span class="fieldRequired" title="Required" 
     93                          i18n:attributes="title title_required;" 
     94                          i18n:translate="label_required">(Required)</span> 
    9295 
    93               <input type="text"  
    94                      id="sender_from_address"  
    95                      name="sender_from_address"  
    96                      size="40"  
    97                      value=""  
    98                      tal:attributes="value request/sender_from_address|nothing" 
    99                      /> 
    100             </div> 
    101             <input type="hidden" name="sender_from_address" value="email" tal:attributes="value email" 
    102                 tal:condition="email"/> 
    103         </tal:feedbackForm> 
    104         <div class="field" 
    105           tal:define="error errors/subject|nothing" 
    106           tal:attributes="class python:test(error, 'field error', 'field')"> 
    107           <label for="subject" i18n:translate="label_subject"> 
    108             Subject 
    109           </label> 
    110           <span class="fieldRequired" title="Required" 
    111                   i18n:attributes="title title_required;" 
    112                   i18n:translate="label_required">(Required)</span> 
     96                    <div class="formHelp" i18n:translate="help_sender_from_address"> 
     97                        Please enter your e-mail address 
     98                    </div> 
    11399 
    114           <div class="formHelp" i18n:translate="help_subject"> 
    115             Please enter the subject of the message you want to send. 
    116           </div> 
     100                    <div tal:condition="error" 
     101                         tal:content="error">Validation error output</div> 
    117102 
    118           <div tal:content="error">Validation error output</div>             
     103                    <input type="text"  
     104                           id="sender_from_address"  
     105                           name="sender_from_address"  
     106                           size="40"  
     107                           value=""  
     108                           tal:attributes="value request/sender_from_address|nothing" 
     109                           /> 
     110                </div> 
    119111 
    120           <input type="text"  
    121                  id="subject"  
    122                  name="subject"  
    123                  size="25"  
    124                  value=""  
    125                  tal:attributes="value request/subject|nothing" 
    126                  /> 
     112                <div class="field" 
     113                     tal:define="error errors/subject|nothing" 
     114                     tal:attributes="class python:test(error, 'field error', 'field')"> 
     115 
     116                    <label for="subject" i18n:translate="label_subject"> 
     117                        Subject 
     118                    </label> 
     119 
     120                    <span class="fieldRequired" title="Required" 
     121                          i18n:attributes="title title_required;" 
     122                          i18n:translate="label_required">(Required)</span> 
     123 
     124                    <div class="formHelp"> 
     125                    </div> 
     126 
     127                    <div tal:condition="error" 
     128                         tal:content="error">Validation error output</div> 
     129 
     130                    <input type="text"  
     131                           id="subject"  
     132                           name="subject"  
     133                           size="40"  
     134                           value=""  
     135                           tal:attributes="value request/subject|nothing" 
     136                           /> 
     137                </div> 
     138 
     139                <div class="field" 
     140                     tal:define="error errors/message|nothing" 
     141                     tal:attributes="class python:test(error, 'field error', 'field')"> 
     142 
     143                    <label for="message" i18n:translate="label_message"> 
     144                        Message 
     145                    </label> 
     146 
     147                    <span class="fieldRequired" title="Required" 
     148                            i18n:attributes="title title_required;" 
     149                            i18n:translate="label_required">(Required)</span> 
     150 
     151                    <div class="formHelp" i18n:translate="help_message"> 
     152                        Please enter the message you want to send. 
     153                    </div> 
     154 
     155                    <div tal:condition="error" 
     156                         tal:content="error">Validation error output</div> 
     157 
     158                    <textarea name="message" 
     159                              id="message" 
     160                              rows="5" 
     161                              cols="25" 
     162                              tal:content="request/message|nothing" 
     163                              > </textarea> 
     164                </div> 
     165 
     166                <div metal:use-macro="here/captcha_widget/macros/captcha"></div> 
     167 
     168                <div class="formControls"> 
     169 
     170                    <input class="context" 
     171                           type="submit" 
     172                           name="form.button.Send" 
     173                           value="Send" 
     174                           i18n:attributes="value label_send;" 
     175                           /> 
     176 
     177                </div> 
     178 
     179            </tal:defs> 
     180 
     181            <input type="hidden" name="form.submitted" value="1" /> 
     182 
     183            </form> 
    127184        </div> 
    128         <div class="field" 
    129           tal:define="error errors/message|nothing" 
    130           tal:attributes="class python:test(error, 'field error', 'field')"> 
    131           <label for="message" i18n:translate="label_message"> 
    132             Message 
    133           </label> 
    134           <span class="fieldRequired" title="Required" 
    135                   i18n:attributes="title title_required;" 
    136                   i18n:translate="label_required">(Required)</span> 
    137  
    138           <div class="formHelp" i18n:translate="help_message"> 
    139             Please enter the message you want to send. 
    140           </div> 
    141  
    142           <div tal:content="error">Validation error output</div> 
    143      
    144           <textarea name="message" 
    145                     id="message" 
    146                     rows="5" 
    147                     cols="25" 
    148                     tal:content="request/message|nothing" 
    149                     > </textarea> 
    150         </div> 
    151      
    152         <div metal:use-macro="here/captcha_widget/macros/captcha"></div> 
    153  
    154         <div class="formControls"> 
    155  
    156             <input class="context" 
    157                    type="submit" 
    158                    name="form.button.Send" 
    159                    value="Send" 
    160                    i18n:attributes="value label_send;" 
    161                    /> 
    162  
    163         </div> 
    164  
    165         </fieldset> 
    166  
    167         <input type="hidden" name="form.submitted" value="1" /> 
    168  
    169         </form> 
    170185    </div> 
    171 </div> 
     186</metal:main> 
    172187</body> 
    173188</html> 
  • quintagroup.plonecaptchas/branches/plone4/quintagroup/plonecaptchas/tests/testForms.py

    r2045 r2456  
    149149                'form.button.Send' : 'Save'} 
    150150 
     151def send_patch(self, *args, **kwargs): 
     152    """This patch prevent breakage on sending.""" 
     153 
    151154class TestContactInfo(TestFormMixin): 
    152155 
     
    157160        self.logout() 
    158161        self.form_url = '/contact-info' 
    159          
     162        self.orig_mh_send = self.portal.MailHost.send 
     163        self.portal.MailHost.send = send_patch 
     164 
     165    def beforeTearDown(self): 
     166        self.portal.MailHost.send = self.orig_mh_send 
     167 
    160168    def getFormData(self): 
    161169        return {'form.submitted' : '1', 
     
    163171                "sender_from_address" : "sender@test.com", 
    164172                'subject': 'Subject', 
    165                 'message': 'Message', 
     173                'message': 'Message',} 
    166174                'form.button.Send' : 'Save'} 
    167175 
Note: See TracChangeset for help on using the changeset viewer.