Changeset 8f1c07c12bed616187cbc4401814c31b38a0a1fb


Ignore:
Timestamp:
15.03.2013 02:14:18 (7 years ago)
Author:
Stanislaw Klekot <dozzie@…>
Branches:
b66903eafbcb1d49112014abc82c8bf683413db0, prototype, prototype-new-outfit
Children:
48380833447903591eee8117daadc89fdd641664
Parents:
63c5ef7200d1fb96d0f8b4358e3cca9d59907570
git-author:
Stanislaw Klekot <dozzie@…> (15.03.2013 02:14:18)
git-committer:
Stanislaw Klekot <dozzie@…> (15.03.2013 02:14:18)
Message:

Added handling macros.

Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • dashwiki/urls.py

    r80caaf r8f1c07  
    1010  (r'^wiki$', 'handle_wiki', {'page_name': 'WikiStart'}), 
    1111  (r'^wiki/', include('wiki.urls')), 
     12  (r'^newpage', 'create_wiki'), 
    1213  (r'^history', 'list_history'), 
    1314  (r'^pages',   'list_pages'), 
    1415 
    15   (r'^macros',  'list_macros'), 
    16   (r'^newpage', 'create_wiki'), 
     16  (r'^macros/?$', 'list_macros'), 
     17  (r'^macros/create/?$', 'create_macro'), 
     18  (r'^macros/edit/(?P<macro_name>[a-zA-Z0-9_]+)$',   'edit_macro'), 
     19  (r'^macros/remove/(?P<macro_name>[a-zA-Z0-9_]+)$', 'remove_macro'), 
    1720) 
  • dashwiki/wiki/views.py

    r63c5ef r8f1c07  
    2727 
    2828  return page 
     29 
     30# }}} 
     31#----------------------------------------------------------------------------- 
     32# sample data {{{ 
     33 
     34macros = [ 
     35  { 
     36    'name': 'active_conns', 
     37    'in_args' : 'server,port', 
     38    'out_args': '$server,$port', 
     39    'destination': 'http://nagios.atled.pl/connections', 
     40    'protocol'   : 'HTTP', 
     41    'result_type': 'graph', 
     42  }, 
     43  { 
     44    'name': 'servers', 
     45    'in_args' : '', 
     46    'out_args': '', 
     47    'destination': 'http://nagios.atled.pl/list-of-servers.txt', 
     48    'protocol'   : 'HTTP', 
     49    'result_type': 'list', 
     50  }, 
     51  { 
     52    'name': 'uptime', 
     53    'in_args' : 'server', 
     54    'out_args': '', 
     55    'destination': 'http://$server.atled.pl/uptime', 
     56    'protocol'   : 'XML-RPC', 
     57    'result_type': 'string', 
     58  }, 
     59] 
    2960 
    3061# }}} 
     
    205236def list_macros(request): 
    206237  template = loader.get_template('list_macros.html') 
    207  
    208   macros = [ 
    209     { 
    210       'name': 'active_conns', 
    211       'in_args' : 'server,port', 
    212       'out_args': '$server,$port', 
    213       'destination': 'http://nagios.atled.pl/connections', 
    214       'protocol'   : 'HTTP', 
    215       'result_type': 'graph', 
    216     }, 
    217     { 
    218       'name': 'servers', 
    219       'in_args' : '', 
    220       'out_args': '', 
    221       'destination': 'http://nagios.atled.pl/list-of-servers.txt', 
    222       'protocol'   : 'HTTP', 
    223       'result_type': 'list', 
    224     }, 
    225     { 
    226       'name': 'uptime', 
    227       'in_args' : 'server', 
    228       'out_args': '', 
    229       'destination': 'http://$server.atled.pl/uptime', 
    230       'protocol'   : 'XML-RPC', 
    231       'result_type': 'string', 
    232     }, 
    233   ] 
    234  
    235238  context = Context({ 
    236239    'macros': macros, 
     
    240243# }}} 
    241244#----------------------------------------------------------------------------- 
    242 # add_macro() {{{ 
     245# create_macro() {{{ 
     246 
     247@csrf_exempt 
     248def create_macro(request): 
     249  if 'cancel' in request.POST: 
     250    from django.core.urlresolvers import reverse 
     251    response = HttpResponse(status = 302) 
     252    response['location'] = reverse(list_macros) 
     253    return response 
     254 
     255  template = loader.get_template('create_macro.html') 
     256  macro = None 
     257 
     258  if 'save' in request.POST: 
     259    context = Context({ 
     260      'macro': macro, 
     261      'message': 'macro created', 
     262      'created': True, 
     263    }) 
     264  else: 
     265    context = Context({ 
     266      'macro': macro, 
     267    }) 
     268 
     269  return HttpResponse(template.render(context)) 
    243270 
    244271# }}} 
     
    246273# edit_macro() {{{ 
    247274 
     275@csrf_exempt 
     276def edit_macro(request, macro_name): 
     277  if 'cancel' in request.POST: 
     278    from django.core.urlresolvers import reverse 
     279    response = HttpResponse(status = 302) 
     280    response['location'] = reverse(list_macros) 
     281    return response 
     282 
     283  template = loader.get_template('edit_macro.html') 
     284  macro = [m for m in macros if m['name'] == macro_name] 
     285  macro = macro[0] if len(macro) > 0 else None 
     286 
     287  if 'save' in request.POST: 
     288    context = Context({ 
     289      'macro': macro, 
     290      'message': 'macro saved', 
     291      'created': True, 
     292    }) 
     293  else: 
     294    context = Context({ 
     295      'macro': macro, 
     296    }) 
     297 
     298  return HttpResponse(template.render(context)) 
     299 
    248300# }}} 
    249301#----------------------------------------------------------------------------- 
    250302# remove_macro() {{{ 
    251303 
     304@csrf_exempt 
     305def remove_macro(request, macro_name): 
     306  if 'cancel' in request.POST: 
     307    from django.core.urlresolvers import reverse 
     308    response = HttpResponse(status = 302) 
     309    response['location'] = reverse(list_macros) 
     310    return response 
     311 
     312  template = loader.get_template('remove_macro.html') 
     313 
     314  context = Context({ 
     315    'name': macro_name, 
     316    'confirmed': ('confirm' in request.POST), 
     317  }) 
     318 
     319  return HttpResponse(template.render(context)) 
     320 
    252321# }}} 
    253322#----------------------------------------------------------------------------- 
  • templates/list_macros.html

    rb29ee6 r8f1c07  
    77 
    88<h2>List of defined macros</h2> 
     9 
     10<div> 
     11  <a href="{% url wiki.views.create_macro %}">Create new macro</a> 
     12</div> 
    913 
    1014<table border="1"> 
     
    1923  {% for macro in macros %} 
    2024  <tr> 
    21     <td>{{ macro.name }}</td> 
     25    <td> 
     26      {{ macro.name }} 
     27      (<a href="{% url wiki.views.edit_macro macro.name %}">edit</a>|<a href="{% url wiki.views.remove_macro macro.name %}">delete</a>) 
     28    </td> 
    2229    <td>{{ macro.result_type }}</td> 
    2330    <td><tt>{{ macro.in_args  }}</tt></td> 
     
    2936</table> 
    3037 
     38<div> 
     39  <a href="{% url wiki.views.create_macro %}">Create new macro</a> 
     40</div> 
     41 
    3142{% endblock %} 
Note: See TracChangeset for help on using the changeset viewer.