Changeset e2a28f5f1d7bc1be2ad84929b97c18c3603d14dc


Ignore:
Timestamp:
12.05.2013 22:57:59 (8 years ago)
Author:
Tomasz Drag <tomek@…>
Branches:
b66903eafbcb1d49112014abc82c8bf683413db0
Children:
db7f89e0c8116ca204eced19bfc2a590b31e1b33
Parents:
1f4e38e9a419d45df2b63953261648d1c9c1f683
git-author:
Tomasz Drag <tomek@…> (12.05.2013 22:57:59)
git-committer:
Tomasz Drag <tomek@…> (12.05.2013 22:57:59)
Message:

Added storing macros in database.

Not everything is working yet. The problem is with saving edited macro.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • dashwiki/wiki/views.py

    r3ef8f3 re2a28f  
    66from django.http import HttpResponse 
    77from django.template import Context, loader 
    8 from wiki.models import WikiPage 
     8from wiki.models import WikiPage, Macro, MacroResultType, MacroProtocol 
    99 
    1010# TODO: enable CSRF protection 
     
    2626 
    2727  return page 
    28  
    29 # }}} 
    30 #----------------------------------------------------------------------------- 
    31 # sample data {{{ 
    32  
    33 macros = [ 
    34   { 
    35     'name': 'active_conns', 
    36     'in_args' : 'server,port', 
    37     'out_args': '$server,$port', 
    38     'destination': 'http://nagios.atled.pl/connections', 
    39     'protocol'   : 'HTTP', 
    40     'result_type': 'graph', 
    41   }, 
    42   { 
    43     'name': 'servers', 
    44     'in_args' : '', 
    45     'out_args': '', 
    46     'destination': 'http://nagios.atled.pl/list-of-servers.txt', 
    47     'protocol'   : 'HTTP', 
    48     'result_type': 'list', 
    49   }, 
    50   { 
    51     'name': 'uptime', 
    52     'in_args' : 'server', 
    53     'out_args': '', 
    54     'destination': 'http://$server.atled.pl/uptime', 
    55     'protocol'   : 'XML-RPC', 
    56     'result_type': 'string', 
    57   }, 
    58 ] 
    5928 
    6029# }}} 
     
    12796    'body': page.content if page else None, 
    12897    'editable': True, 
    129     'message': 'Wiki page saved'         
     98    'message': 'Wiki page saved'     
    13099  }) 
    131100   
     
    241210def list_macros(request): 
    242211  template = loader.get_template('list_macros.html') 
     212  all_macros = Macro.objects.all()  
     213  macros = [] 
     214  for macro in all_macros: 
     215    tmp = { 
     216      'name'        : macro.name, 
     217      'in_args'     : macro.in_args, 
     218      'out_args'    : macro.out_args, 
     219      'destination' : macro.url, 
     220      'result'      : macro.result_type.name, 
     221      'protocol'    : macro.protocol.name, 
     222    } 
     223    macros.append(tmp) 
    243224  context = Context({ 
    244225    'macros': macros, 
     
    250231# create_macro() {{{ 
    251232 
     233def 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   
    252249@csrf_exempt 
    253250def create_macro(request): 
     
    262259 
    263260  if 'save' in request.POST: 
     261    post = request.POST 
     262    macro = { 
     263      'name' :          post.get('name'), 
     264      'in_args' :       post.get('in_args'), 
     265      'out_args' :      post.get('out_args'), 
     266      'destination' :   post.get('destination'), 
     267      'result' :        post.get('result'), 
     268      'protocol' :      post.get('protocol'), 
     269    } 
     270    save_macro_to_database( 
     271      name = post['name'], 
     272      url = post['destination'], 
     273      in_args = post['in_args'], 
     274      out_args = post['out_args'], 
     275      result_type_name = post['result'], 
     276      protocol_name = post['protocol'] 
     277    ) 
    264278    context = Context({ 
    265279      'macro': macro, 
     
    287301 
    288302  template = loader.get_template('edit_macro.html') 
    289   macro = [m for m in macros if m['name'] == macro_name] 
    290   macro = macro[0] if len(macro) > 0 else None 
    291  
     303  macro_to_edit = Macro.objects.get(name = macro_name)  
     304  macro = { 
     305    'name' : macro_to_edit.name, 
     306    'in_args' : macro_to_edit.in_args, 
     307    'out_args' : macro_to_edit.out_args, 
     308    'destination' : macro_to_edit.url, 
     309    'result' : macro_to_edit.result_type.name, 
     310    'protocol' : macro_to_edit.protocol.name, 
     311  } 
    292312  if 'save' in request.POST: 
     313    post = request.POST 
     314    macro = { 
     315      'name' : post.get('name'), 
     316      'in_args' : post.get('in_args'), 
     317      'out_args' : post.get('out_args'), 
     318      'destination' : post.get('destination'), 
     319      'result' : post.get('result'), 
     320      'protocol' : post.get('protocol'), 
     321    } 
     322    save_macro_to_database( 
     323      name = post['name'], 
     324      url = post['destination'], 
     325      in_args = post['in_args'], 
     326      out_args = post['out_args'], 
     327      result_type_name = post['result'], 
     328      protocol_name = post['protocol'] 
     329    ) 
    293330    context = Context({ 
    294331      'macro': macro, 
  • templates/create_macro.html

    rf4ddc3 re2a28f  
    5454      <th>protocol</th> 
    5555      <td> 
    56         <select name="result"> 
     56        <select name="protocol"> 
    5757           <option value="HTTP">HTTP</option> 
    5858           <option value="XML-RPC">XML-RPC</option> 
     
    6767          <td></td> 
    6868          <td> 
    69                 <input type="submit" name="submit" value="Submit" /> 
     69                <input type="submit" name="save" value="Submit" /> 
    7070                <span>|</span> 
    7171                <input type="submit" name="cancel" value="Cancel" /> 
  • templates/edit_macro.html

    rf4ddc3 re2a28f  
    5454      <th>protocol</th> 
    5555      <td> 
    56         <select name="result"> 
     56        <select name="protocol"> 
    5757           <option value="HTTP">HTTP</option> 
    5858           <option value="XML-RPC">XML-RPC</option> 
Note: See TracChangeset for help on using the changeset viewer.