views.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # -*- coding: utf-8 -*-
  2. from flask import request, g, redirect, url_for, abort, \
  3. render_template, flash, jsonify
  4. from flask.ext.babel import gettext as _
  5. from datetime import date, time, timedelta, datetime
  6. import locale
  7. locale.setlocale(locale.LC_ALL, '')
  8. import string
  9. from . import forms
  10. from .constants import *
  11. from . import app
  12. from .models import ISP
  13. @app.route('/')
  14. def home():
  15. return render_template('index.html', active_button="home")
  16. @app.route('/projects')
  17. def project_list():
  18. return render_template('project_list.html', projects=ISP.query.filter_by(is_disabled=False))
  19. @app.route('/isp/<projectid>/')
  20. def project(projectid):
  21. p=ISP.query.filter_by(id=projectid, is_disabled=False).first()
  22. if not p:
  23. abort(404)
  24. return render_template('project_detail.html', project_row=p, project=p.json)
  25. @app.route('/isp/<projectid>/edit', methods=['GET', 'POST'])
  26. def edit_project(projectid):
  27. isp=ISP.query.filter_by(id=projectid, is_disabled=False).first()
  28. if not isp:
  29. abort(404)
  30. form = forms.ProjectForm.edit_json(isp.json)
  31. if form.validate_on_submit():
  32. isp.name = form.name.data
  33. isp.shortname = form.shortname.data or None
  34. isp.json=form.to_json(isp.json)
  35. db.session.add(isp)
  36. db.session.commit()
  37. flash(_(u'Project modified'), 'info')
  38. return redirect(url_for('project', projectid=isp.id))
  39. return render_template('project_form.html', form=form, project=isp)
  40. @app.route('/add-a-project', methods=['GET'])
  41. def add_project():
  42. return render_template('add_project.html')
  43. @app.route('/create/form', methods=['GET', 'POST'])
  44. def create_project_form():
  45. form = forms.ProjectForm()
  46. if form.validate_on_submit():
  47. isp=ISP()
  48. isp.name = form.name.data
  49. isp.shortname = form.shortname.data or None
  50. isp.json=form.to_json(isp.json)
  51. db.session.add(isp)
  52. db.session.commit()
  53. flash(_(u'Project created'), 'info')
  54. return redirect(url_for('project', projectid=isp.id))
  55. return render_template('project_form.html', form=form)
  56. @app.route('/create/json-url', methods=['GET', 'POST'])
  57. def create_project_json():
  58. form = forms.ProjectJSONForm()
  59. if form.validate_on_submit():
  60. isp=ISP()
  61. db.session.add(isp)
  62. db.session.commit()
  63. flash(_(u'Project created'), 'info')
  64. return redirect(url_for('project', projectid=isp.id))
  65. return render_template('project_json_form.html', form=form)
  66. @app.route('/search', methods=['GET', 'POST'])
  67. def search():
  68. if request.method == 'POST':
  69. pass
  70. return render_template('search.html')
  71. #------
  72. # Filters
  73. @app.template_filter('step_to_label')
  74. def step_to_label(step):
  75. if step:
  76. return u"<a href='#' rel='tooltip' data-placement='right' title='" + STEPS[step] + "'><span class='badge badge-" + STEPS_LABELS[step] + "'>" + str(step) + "</span></a>"
  77. else:
  78. return u'-'
  79. @app.template_filter('member_to_label')
  80. def member_to_label(is_member):
  81. if is_member:
  82. return u'<a href="#" rel="tooltip" data-placement="right" title="Membre de la Fédération FDN"><span class="label label-success">FFDN</span></a>'
  83. return ''
  84. @app.template_filter('stepname')
  85. def stepname(step):
  86. return STEPS[step]
  87. @app.template_filter('gpspart')
  88. def gpspart(gps, part):
  89. parts = gps.split(':');
  90. if part == 1:
  91. return parts[0]
  92. elif part == 2:
  93. return parts[1]
  94. return "";