wifi-form.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. {% extends "base.html" %}
  2. {% load bootstrap %}
  3. {% load staticfiles %}
  4. {% block body_class %}form{% endblock %}
  5. {% block content %}
  6. <script src="{% static 'form.js' %}" type="text/javascript"></script>
  7. <header class="jumbotron">
  8. <div class="container">
  9. {% include "core/welcome_speech.html" %}
  10. </div>
  11. </header>
  12. <section role="main" class="container">
  13. <form role="form" method="post">{% csrf_token %}
  14. {% if form.non_field_errors %}
  15. <div id="errors" class="bg-danger">
  16. {{ form.non_field_errors }}
  17. </div>
  18. {% endif %}
  19. <h2>Contact</h2>
  20. <div class="form-group">
  21. <label for="name">Nom / Pseudo</label>
  22. {{ form.name|formcontrol }}
  23. {{ form.name.errors }}
  24. </div>
  25. <div class="row">
  26. <div class="form-group col-md-6">
  27. <label for="email">Email</label>
  28. {{ form.email|formcontrol }}
  29. {{ form.email.errors }}
  30. <p class="help-block">
  31. <span class="glyphicon glyphicon-warning-sign"></span>
  32. Un moyen de contact au moins est nécessaire
  33. </p>
  34. </div>
  35. <div class="form-group col-md-6">
  36. <label for="phone">Téléphone</label>
  37. {{ form.phone|formcontrol }}
  38. {{ form.phone.errors }}
  39. </div>
  40. </div>
  41. <h2>Je souhaite</h2>
  42. <div id="id_contrib_type">
  43. {% for i in form.contrib_type %}
  44. <p class="radio">{{ i }}</p>
  45. {% endfor %}
  46. </div>
  47. <div id="contrib-type-share"
  48. <h2>Partager une connexion</h2>
  49. <h3>Type de connexion</h3>
  50. <div id="id_access_type">
  51. {% for i in form.access_type %}
  52. {% if i.choice_value %}<p class="radio">{{ i }}</p>{% endif %}
  53. {% endfor %}
  54. </div>
  55. {{ form.access_type.errors }}
  56. </div>
  57. <h2>Ma localisation</h2>
  58. <div class="row">
  59. <div class="col-sm-6">
  60. <div id="map" data-json="{{geojson}}"
  61. start_lon="{{ isp.LONGITUDE|stringformat:"f" }}" start_lat="{{ isp.LATITUDE|stringformat:"f" }}"
  62. start_zoom="{{ isp.ZOOM }}"></div>
  63. </div>
  64. <div class="form-group col-sm-6">
  65. <div class="form-group form-group-lg form-inline">
  66. <input type="text" name="search"
  67. id="search" placeholder="{{ isp.ADDRESS_EXAMPLE }}" class="form-control" />
  68. <span id="search-btn" class="btn btn-default btn-lg" data-loading-text="...">Recherche</span>
  69. <div id="search-results" class=""></div>
  70. <p class="help-block">Déplacer le marqueur bleu pour pointer précisément le bâtiment au besoin</p>
  71. <p class="help-block">
  72. Les ronds verts sont ceux renseignés par d'autres utilisateurs, vous
  73. pouvez aussi consulter <a href="{% url 'display_map' %}" target="_blank">la carte
  74. publique plus détaillée</a>.
  75. </p>
  76. </div>
  77. {{ form.latitude }}
  78. {{ form.longitude }}
  79. {% firstof form.latitude.errors form.latitude.errors %}
  80. </div>
  81. </div>
  82. <p class="help-block">Les antennes peuvent être positionées soit sur le toit soit aux fenêtres/balcons/velux.</p>
  83. <div class="form-group">
  84. <label for="orientation" />Orientation(s) de mes fenêtres, balcons ou velux</label>
  85. (<label class="checkbox-inline"><input type="checkbox" name="orientation-all" id="orientation-all" value="" />Vue à 360°</label>)
  86. <br>
  87. {% for val, label in form.orientations.field.choices %}
  88. <label class="checkbox-inline">
  89. <input type="checkbox" class="orientation" name="orientations" value="{{ val }}"
  90. {% if val in form.orientations.value %}checked="yes"{% endif %}/>
  91. {{label}}
  92. </label>
  93. {% endfor %}
  94. {{ form.orientations.errors }}
  95. <div class="form-group">
  96. <label for="roof">Je peux accéder à mon toit
  97. {{ form.roof }}
  98. {{ form.roof.errors }}
  99. </label>
  100. </div>
  101. <p class="form-inline">
  102. <label for="floor">Mon étage</label>
  103. {{ form.floor }}
  104. {{ form.floor.errors }}
  105. /
  106. {{ form.floor_total }}
  107. {{ form.floor_total.errors }}
  108. </p>
  109. <h2>Remarque/commentaire</h2>
  110. {{ form.comment|formcontrol }}
  111. {{ form.comment.errors }}
  112. <h2>Mes données</h2>
  113. {{ form.human_field|formcontrol }}
  114. <p class="help-block">
  115. Les données collectées dans ce formulaire sont accessibles
  116. au bureau de {{ isp.NAME }}.<br />
  117. Vous pouvez cocher ci-dessous celles que vous voulez bien voir <a
  118. href="{% url 'legal' %}">rendues publiques et librement réutilisées</a>.
  119. </p>
  120. <div class="form-group">
  121. <label for="privacy" />
  122. J'autorise qu'apparaissent sur la carte publique :
  123. </label><br />
  124. </div>
  125. {% for i in form.privacy_fields %}
  126. <div class="checkbox">
  127. <label>
  128. {{ i }}
  129. {{ i.label }}
  130. </label>
  131. </div>
  132. {% endfor %}
  133. <input type="submit" value="Envoyer" class="btn btn-primary btn-lg"/>
  134. </form>
  135. </section>
  136. <div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="Resultats" aria-hidden="true">
  137. <div class="modal-dialog modal-lg">
  138. <div class="modal-content">
  139. <div class="modal-header">
  140. <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Fermer</span></button>
  141. <h4 class="modal-title" id="myModalLabel">Résultats</h4>
  142. </div>
  143. <div class="modal-body">
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. {% endblock %}