Initial cleanup of the codebase

Change-Id: Idbc92ea3c2d7ee4d4807d1d83ceee9a299b9a9f7
diff --git a/service/app/templates/macros.html b/service/app/templates/macros.html
new file mode 100644
index 0000000..2d1c62a
--- /dev/null
+++ b/service/app/templates/macros.html
@@ -0,0 +1,107 @@
+{# Renders field for bootstrap 3 standards.
+
+Params:
+field - WTForm field
+kwargs - pass any arguments you want in order to put them into the html attributes.
+There are few exceptions: for - for_, class - class_, class__ - class_
+
+Example usage:
+{{ macros.render_field(form.email, placeholder='Input email', type='email') }}
+#}
+{% macro render_field(field, label_visible=true) -%}
+
+<div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}">
+    {% if (field.type != 'HiddenField' or field.type !='CSRFTokenField') and label_visible %}
+    <label for="{{ field.id }}" class="control-label">{{ field.label }}</label>
+    {% endif %}
+    {{ field(class_='form-control text-capitalized', **kwargs) }}
+    {% if field.errors %}
+    {% for e in field.errors %}
+    <p class="help-block">{{ e }}</p>
+    {% endfor %}
+    {% endif %}
+</div>
+{%- endmacro %}
+
+{# Renders checkbox fields since they are represented differently in bootstrap
+Params:
+field - WTForm field (there are no check, but you should put here only BooleanField.
+kwargs - pass any arguments you want in order to put them into the html attributes.
+There are few exceptions: for - for_, class - class_, class__ - class_
+
+Example usage:
+{{ macros.render_checkbox_field(form.remember_me) }}
+#}
+{% macro render_checkbox_field(field) -%}
+<div class="checkbox">
+    <label>
+        {{ field(type='checkbox', **kwargs) }} {{ field.label }}
+    </label>
+</div>
+{%- endmacro %}
+
+{# Renders radio field
+Params:
+field - WTForm field (there are no check, but you should put here only BooleanField.
+kwargs - pass any arguments you want in order to put them into the html attributes.
+There are few exceptions: for - for_, class - class_, class__ - class_
+
+Example usage:
+{{ macros.render_radio_field(form.answers) }}
+#}
+{% macro render_radio_field(field) -%}
+{% for value, label, _ in field.iter_choices() %}
+<div class="radio" style="margin:8pt auto;">
+    <label>
+        <input type="radio" name="{{ field.id }}" id="{{ field.id }}" value="{{ value }}">{{ label }}
+    </label>
+    {% if field.errors %}
+    {% for e in field.errors %}
+    <p class="help-block">{{ e }}</p>
+    {% endfor %}
+    {% endif %}
+</div>
+{% endfor %}
+{%- endmacro %}
+
+
+{# Renders WTForm in bootstrap way. There are two ways to call function:
+- as macros: it will render all field forms using cycle to iterate over them
+- as call: it will insert form fields as you specify:
+e.g. {% call macros.render_form(form, action_url=url_for('.login_view'), action_text='Login',
+class_='login-form') %}
+{{ macros.render_field(form.email, placeholder='Input email', type='email') }}
+{{ macros.render_field(form.password, placeholder='Input password', type='password') }}
+{{ macros.render_checkbox_field(form.remember_me, type='checkbox') }}
+{% endcall %}
+
+Params:
+form - WTForm class
+method - form method
+action_url - url where to submit this form
+action_text - text of submit button
+class_ - sets a class for form
+#}
+{% macro render_form(form, action_url='', method='POST', action_text='Submit', class_='', disabled=False,
+btn_class='btn btn-default') -%}
+
+<form method="{{ method }}" action="{{ action_url }}" role="form" class="{{ class_ }}">
+    {{ form.hidden_tag() if form.hidden_tag }}
+    {% if caller %}
+        {{ caller() }}
+    {% else %}
+    {% for f in form %}
+    {% if f.id != 'csrf_token' %}
+        {% if f.type == 'BooleanField' %}
+            {{ render_checkbox_field(f) }}
+        {% elif f.type == 'RadioField' %}
+            {{ render_radio_field(f) }}
+        {% else %}
+            {{ render_field(f) }}
+        {% endif %}
+    {% endif %}
+    {% endfor %}
+    {% endif %}
+    <button type="submit" {% if disabled %} disabled {% endif %} class="{{ btn_class }}">{{ action_text }}</button>
+</form>
+{%- endmacro %}
\ No newline at end of file