File size: 1,979 Bytes
91073d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{% macro render_field(field, label_class='block text-gray-700 font-medium mb-2', input_class='w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:border-blue-500 focus:ring focus:ring-blue-200', error_class='text-red-600 text-sm mt-1') %}
<div class="mb-4">
    {{ field.label(class=label_class) }}
    {{ field(class=input_class, **kwargs) }}
    
    {% if field.errors %}
    <div class="{{ error_class }}">
        {% for error in field.errors %}
        <p>{{ error }}</p>
        {% endfor %}
    </div>
    {% endif %}
    
    {% if field.description %}
    <p class="text-gray-500 text-xs mt-1">{{ field.description }}</p>
    {% endif %}
</div>
{% endmacro %}

{% macro render_boolean_field(field, label_class='flex items-center', input_class='h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500', error_class='text-red-600 text-sm mt-1') %}
<div class="mb-4">
    <label class="{{ label_class }}">
        {{ field(class=input_class, **kwargs) }}
        <span class="ml-2">{{ field.label.text }}</span>
    </label>
    
    {% if field.errors %}
    <div class="{{ error_class }}">
        {% for error in field.errors %}
        <p>{{ error }}</p>
        {% endfor %}
    </div>
    {% endif %}
    
    {% if field.description %}
    <p class="text-gray-500 text-xs mt-1">{{ field.description }}</p>
    {% endif %}
</div>
{% endmacro %}

{% macro render_submit_button(text='Submit', class='px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors') %}
<button type="submit" class="{{ class }}">
    {{ text }}
</button>
{% endmacro %}

{% macro render_cancel_button(url, text='Cancel', class='px-4 py-2 bg-gray-200 text-gray-800 rounded-md hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 transition-colors') %}
<a href="{{ url }}" class="{{ class }}">
    {{ text }}
</a>
{% endmacro %}