Changeset 3987

Show
Ignore:
Timestamp:
07/08/08 15:49:09 (5 months ago)
Author:
k0s
Message:

use one form for everything so that the data comes from the request; flushing out form

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ticketsubmitpolicyplugin/0.11/ticketsubmitpolicy/templates/ticketsubmitpolicy.html

    r3986 r3987  
    1010  </head> 
    1111  <body> 
     12 
     13    <form method="post"> 
    1214    <div py:for="name in sorted(policies.keys())" class="plugin"> 
    1315      <h2>${name}</h2> 
    14       <form id="${name}" method="post"> 
    1516 
    1617      <div> 
     
    2122               
    2223              <td class="field"> 
    23                 <select name="${name}-condition-field"> 
     24                <select name="condition_field_${name}"> 
    2425                  <py:for each="field in fields"> 
    2526                    <option py:attrs="{'selected': condition['field'] 
     
    3233               
    3334              <td class="operator"> 
    34                 <select name="${name}-condition-operator"> 
     35                <select name="condition_operator_${name}"> 
    3536                  <py:for each="comparitor in comparitors"> 
    3637                     <option py:attrs="{'selected': 
     
    4445               
    4546              <td> 
    46                 <input type="text" value="${condition['value']}"/> 
     47                <input type="text" name="condition_value_${name}" value="${condition['value']}"/> 
    4748              </td> 
    4849 
     
    5253            </tr> 
    5354          </table> 
    54           <input type="submit" name="add_condition}" value="+"/> 
     55          <input type="submit" name="add_condition_${name}" value="+"/> 
    5556      </div> 
    5657 
     
    5859        <h3>Policy</h3> 
    5960         
     61        <table> 
    6062        <tr py:for="action in policies[name]['actions']"> 
    6163          <td> 
     
    7476          </td> 
    7577          <td class="actions"> 
    76             <input type="submit" name="rm_policy_${action['name']}" value="-"/> 
     78            <input type="submit" name="rm_action_${action['name']}_${name}" value="-"/> 
    7779          </td> 
    7880        </tr> 
     81        </table> 
     82         
     83        <!-- new policy checkbox --> 
     84        <py:if test="len(policies[name]['actions']) != 
     85                     len(self_actions)"> 
     86          Add action:  
     87          <select name="add_action_${name}"> 
     88            <py:for each="action in [ i.name() for i in self_actions 
     89          if i.name() not in [ j['name'] for j in policies[name]['actions']]]"> 
     90              <option>${action}</option> 
     91            </py:for>                  
     92          </select> 
     93        </py:if> 
     94 
    7995      </div> 
    8096 
    8197      <input type="submit" name="apply" value="Apply Changes"/> 
    8298      <input type="submit" name="remove" value="Remove"/> 
    83       </form> 
    8499 
    85100    </div> 
    86101 
    87102    <div> 
    88       <form id="new-policy" name="new-policy"> 
    89         <input type="text"/> 
    90         <input type="submit" name="add-policy" value="Add Policy"/> 
    91       </form> 
     103      <input type="text"/> 
     104      <input type="submit" name="add-policy" value="Add Policy"/> 
    92105    </div> 
     106 
     107    </form> 
    93108     
    94109  </body> 
  • ticketsubmitpolicyplugin/0.11/ticketsubmitpolicy/ticketsubmitpolicy.py

    r3985 r3987  
    3434 
    3535    implements(ITemplateStreamFilter, IAdminPanelProvider, ITemplateProvider)  
     36     
     37    # XXX this should be renamed -> actions 
    3638    policies = ExtensionPoint(ITicketSubmitPolicy) 
    3739 
     
    322324        """ 
    323325        data = { 'policies': self.parse() } # data for template 
    324         data['fields'] = Ticket(self.env).fields 
    325         data['comparitors'] = self.comparitors 
     326        data['fields'] = Ticket(self.env).fields # possible ticket fields 
     327        data['comparitors'] = self.comparitors # implemented comparitors 
     328        data['self_actions'] = self.policies # available policies 
     329 
     330        if req.method == 'POST': 
     331 
     332            import pdb;  pdb.set_trace() 
     333 
     334            # get the conditions and policies from the request 
     335 
     336            # added conditions 
     337            new_conditions = [ i.split('add_condition_', 1)[-1]  
     338                               for i in req.args.keys()  
     339                               if i.startswith('add_condition_') ] 
     340            for name in new_conditions: 
     341                data['policies'][name]['condition'].append(dict(comparitor='', field='', value='')) 
     342 
     343            # added actions 
    326344 
    327345        return ('ticketsubmitpolicy.html', data)