Changeset db7f89e0c8116ca204eced19bfc2a590b31e1b33


Ignore:
Timestamp:
13.05.2013 10:07:17 (8 years ago)
Author:
Stanislaw Klekot <dozzie@…>
Branches:
b66903eafbcb1d49112014abc82c8bf683413db0
Children:
b5bbc1139f2490b82e2d4c754d8aeb6aefc86835
Parents:
e2a28f5f1d7bc1be2ad84929b97c18c3603d14dc
git-author:
Stanislaw Klekot <dozzie@…> (13.05.2013 10:07:17)
git-committer:
Stanislaw Klekot <dozzie@…> (13.05.2013 10:07:17)
Message:

Fixed failures when saving changes in macros.

The bug was that the lists of supported protocols and result types were
hardcoded in templates instead of read from database.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • dashwiki/wiki/views.py

    re2a28f rdb7f89  
    9696    'body': page.content if page else None, 
    9797    'editable': True, 
    98     'message': 'Wiki page saved'     
    99   }) 
    100    
     98    'message': 'Wiki page saved' 
     99  }) 
     100 
    101101  return HttpResponse(template.render(context)) 
    102102 
     
    160160  template = loader.get_template('remove_wiki.html') 
    161161  page = load_wiki_or_null(page_name) 
    162   if 'confirm' in request.POST:  
     162  if 'confirm' in request.POST: 
    163163    # FIXME: How about page = None? 
    164164    page.delete() 
     
    206206# macros {{{ 
    207207#----------------------------------------------------------------------------- 
     208# utilities {{{ 
     209 
     210def save_macro_to_database(name, url, in_args, out_args, result_type_name, protocol_name): 
     211  result_type   = MacroResultType.objects.get(name = result_type_name) 
     212  protocol      = MacroProtocol.objects.get(name = protocol_name) 
     213  new_macro     = Macro.objects.get_or_create( 
     214    name = name, 
     215    defaults = {'result_type' : result_type, 'protocol' : protocol} 
     216  ) 
     217  new_macro              = new_macro[0] 
     218  new_macro.url          = url 
     219  new_macro.in_args      = in_args 
     220  new_macro.out_args     = out_args 
     221  new_macro.result_type  = result_type 
     222  new_macro.protocol     = protocol 
     223  new_macro.save() 
     224  return new_macro 
     225 
     226def macro_supported_result_types(): 
     227  return [t.name for t in MacroResultType.objects.all()] 
     228 
     229def macro_supported_protocols(): 
     230  return [p.name for p in MacroProtocol.objects.all()] 
     231 
     232# }}} 
     233#----------------------------------------------------------------------------- 
    208234# list_macros() {{{ 
    209235 
    210236def list_macros(request): 
    211237  template = loader.get_template('list_macros.html') 
    212   all_macros = Macro.objects.all()  
     238  all_macros = Macro.objects.all() 
    213239  macros = [] 
    214240  for macro in all_macros: 
     
    231257# create_macro() {{{ 
    232258 
    233 def save_macro_to_database(name, url, in_args, out_args, result_type_name, protocol_name): 
    234   result_type   = MacroResultType.objects.get(name = result_type_name) 
    235   protocol      = MacroProtocol.objects.get(name = protocol_name) 
    236   new_macro     = Macro.objects.get_or_create( 
    237     name = name,  
    238     defaults = {'result_type' : result_type, 'protocol' : protocol} 
    239   ) 
    240   new_macro              = new_macro[0] 
    241   new_macro.url          = url 
    242   new_macro.in_args      = in_args 
    243   new_macro.out_args     = out_args 
    244   new_macro.result_type  = result_type 
    245   new_macro.protocol     = protocol 
    246   new_macro.save() 
    247   return new_macro 
    248    
    249259@csrf_exempt 
    250260def create_macro(request): 
     
    280290      'message': 'macro created', 
    281291      'created': True, 
     292      'supported_protocols':    macro_supported_protocols(), 
     293      'supported_result_types': macro_supported_result_types(), 
    282294    }) 
    283295  else: 
    284296    context = Context({ 
    285297      'macro': macro, 
     298      'supported_protocols':    macro_supported_protocols(), 
     299      'supported_result_types': macro_supported_result_types(), 
    286300    }) 
    287301 
     
    301315 
    302316  template = loader.get_template('edit_macro.html') 
    303   macro_to_edit = Macro.objects.get(name = macro_name)  
     317  macro_to_edit = Macro.objects.get(name = macro_name) 
    304318  macro = { 
    305319    'name' : macro_to_edit.name, 
     
    332346      'message': 'macro saved', 
    333347      'created': True, 
     348      'supported_protocols':    macro_supported_protocols(), 
     349      'supported_result_types': macro_supported_result_types(), 
    334350    }) 
    335351  else: 
    336352    context = Context({ 
    337353      'macro': macro, 
     354      'supported_protocols':    macro_supported_protocols(), 
     355      'supported_result_types': macro_supported_result_types(), 
    338356    }) 
    339357 
  • templates/create_macro.html

    re2a28f rdb7f89  
    2424  <a href="{% url wiki.views.list_macros %}">Go back</a> to macros list. 
    2525</p> 
    26 {% else %}                       
     26{% else %} 
    2727<form method="post" action="{% url wiki.views.create_macro %}"> 
    28         <table> 
    29         <tr> 
     28  <table> 
     29    <tr> 
    3030      <th>name</th> 
    3131      <td><input type="text" cols="80" name="name" value="{{ macro.name }}" /></td> 
     
    3535      <td> 
    3636        <select name="result"> 
    37            <option value="int">int</option> 
    38            <option value="float">float</option> 
    39            <option value="string">string</option> 
    40            <option value="graph">graph</option> 
    41            <option value="list">list</option> 
     37{% for result in supported_result_types %} 
     38           <option value="{{ result }}">{{ result }}</option> 
     39{% endfor %} 
    4240        </select> 
    4341      </td> 
     
    5553      <td> 
    5654        <select name="protocol"> 
    57            <option value="HTTP">HTTP</option> 
    58            <option value="XML-RPC">XML-RPC</option> 
     55{% for proto in supported_protocols %} 
     56           <option value="{{ proto }}">{{ proto }}</option> 
     57{% endfor %} 
    5958        </select> 
    6059      </td> 
     
    6463      <td><input type="text" cols="80" name="destination" value="{{ macro.destination }}" /></td> 
    6564    </tr> 
    66         <tr> 
    67           <td></td> 
    68           <td> 
    69                 <input type="submit" name="save" value="Submit" /> 
    70                 <span>|</span> 
    71                 <input type="submit" name="cancel" value="Cancel" /> 
    72           </td> 
    73         </tr> 
    74         </table> 
     65  <tr> 
     66    <td></td> 
     67    <td> 
     68    <input type="submit" name="save"   value="Save" /> 
     69    <span>|</span> 
     70    <input type="submit" name="cancel" value="Cancel" /> 
     71    </td> 
     72  </tr> 
     73  </table> 
    7574</form> 
    7675{% endif %} 
  • templates/edit_macro.html

    re2a28f rdb7f89  
    2525</p> 
    2626{% else %} 
    27 <form method="post" action="{% url wiki.views.edit_macro macro.name %}">                         
     27<form method="post" action="{% url wiki.views.edit_macro macro.name %}">       
    2828  <table> 
    2929    <tr> 
     
    3535      <td> 
    3636        <select name="result"> 
    37            <option value="int">int</option> 
    38            <option value="float">float</option> 
    39            <option value="string">string</option> 
    40            <option value="graph">graph</option> 
    41            <option value="list">list</option> 
     37{% for result in supported_result_types %} 
     38           <option value="{{ result }}">{{ result }}</option> 
     39{% endfor %} 
    4240        </select> 
    4341      </td> 
     
    5553      <td> 
    5654        <select name="protocol"> 
    57            <option value="HTTP">HTTP</option> 
    58            <option value="XML-RPC">XML-RPC</option> 
     55{% for proto in supported_protocols %} 
     56           <option value="{{ proto }}">{{ proto }}</option> 
     57{% endfor %} 
    5958        </select> 
    6059      </td> 
     
    6463      <td><input type="text" cols="80" name="destination" value="{{ macro.destination }}" /></td> 
    6564    </tr> 
    66         <tr> 
    67           <td></td> 
    68           <td> 
    69             <input type="submit" name="save"   value="Save" /> 
    70                 <span>|</span> 
    71                 <input type="submit" name="cancel" value="Cancel" /> 
    72           </td> 
    73         </tr> 
     65  <tr> 
     66    <td></td> 
     67    <td> 
     68    <input type="submit" name="save"   value="Save" /> 
     69    <span>|</span> 
     70    <input type="submit" name="cancel" value="Cancel" /> 
     71    </td> 
     72  </tr> 
    7473  </table> 
    7574</form> 
Note: See TracChangeset for help on using the changeset viewer.