Update verification photo pages
This commit is contained in:
@@ -60,6 +60,36 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="filter-group">
|
||||
<label for="project">Project</label>
|
||||
<select name="project" id="project" class="filter-select">
|
||||
<option value="">All Projects</option>
|
||||
{% for project in projects %}
|
||||
<option value="{{ project.id }}" {% if project_filter == project.id|string %}selected{% endif %}>
|
||||
{{ project.name }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="filter-group">
|
||||
<label for="location">Location</label>
|
||||
<select name="location" id="location" class="filter-select">
|
||||
<option value="">All Locations</option>
|
||||
{% for location in locations %}
|
||||
<option value="{{ location }}" {% if location_filter == location %}selected{% endif %}>
|
||||
{{ location }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="filter-group">
|
||||
<label for="employee">Employee ID</label>
|
||||
<input type="text" name="employee" id="employee" value="{{ employee_filter }}"
|
||||
class="filter-input" placeholder="Search by ID...">
|
||||
</div>
|
||||
|
||||
<div class="filter-group">
|
||||
<label for="date_from">From Date</label>
|
||||
<input type="date" name="date_from" id="date_from" value="{{ date_from }}" class="filter-input">
|
||||
@@ -70,10 +100,13 @@
|
||||
<input type="date" name="date_to" id="date_to" value="{{ date_to }}" class="filter-input">
|
||||
</div>
|
||||
|
||||
<div class="filter-group">
|
||||
<div class="filter-group filter-buttons">
|
||||
<button type="submit" class="btn-filter">
|
||||
<i class="fas fa-filter"></i> Apply Filters
|
||||
</button>
|
||||
<a href="{{ url_for('verification_review') }}" class="btn-reset">
|
||||
<i class="fas fa-undo"></i> Reset
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -89,7 +122,10 @@
|
||||
<div class="verification-info">
|
||||
<h3>
|
||||
<i class="fas fa-user"></i>
|
||||
Employee {{ record.employee_id }}
|
||||
{{ record.employee_id }}
|
||||
{% if employee_names.get(record.employee_id) %}
|
||||
<span class="employee-name">- {{ employee_names.get(record.employee_id) }}</span>
|
||||
{% endif %}
|
||||
</h3>
|
||||
<div class="verification-meta">
|
||||
<span class="meta-item">
|
||||
@@ -104,7 +140,21 @@
|
||||
<i class="fas fa-map-marker-alt"></i>
|
||||
{{ record.location_name }}
|
||||
</span>
|
||||
{% if record.qr_code and record.qr_code.location_event %}
|
||||
<span class="meta-item event-badge {{ 'check-in' if record.qr_code.location_event == 'Check In' else 'check-out' }}">
|
||||
<i class="fas fa-{{ 'sign-in-alt' if record.qr_code.location_event == 'Check In' else 'sign-out-alt' }}"></i>
|
||||
{{ record.qr_code.location_event }}
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if record.qr_code and record.qr_code.project_id and project_names.get(record.qr_code.project_id) %}
|
||||
<div class="verification-project">
|
||||
<span class="project-badge">
|
||||
<i class="fas fa-folder"></i>
|
||||
{{ project_names.get(record.qr_code.project_id) }}
|
||||
</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="verification-status">
|
||||
{% if record.verification_status == 'pending' %}
|
||||
@@ -330,6 +380,71 @@
|
||||
background: #2563eb;
|
||||
}
|
||||
|
||||
.btn-reset {
|
||||
width: 100%;
|
||||
padding: 0.625rem 1.5rem;
|
||||
background: #6b7280;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 0.375rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.btn-reset:hover {
|
||||
background: #4b5563;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.employee-name {
|
||||
font-weight: 500;
|
||||
color: #4b5563;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.verification-project {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.project-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.375rem;
|
||||
padding: 0.25rem 0.75rem;
|
||||
background: #e0e7ff;
|
||||
color: #3730a3;
|
||||
border-radius: 9999px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.event-badge {
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
font-weight: 600;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.event-badge.check-in {
|
||||
background: #d1fae5;
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
.event-badge.check-out {
|
||||
background: #fef3c7;
|
||||
color: #92400e;
|
||||
}
|
||||
|
||||
.verifications-grid {
|
||||
display: grid;
|
||||
gap: 2rem;
|
||||
|
||||
@@ -345,7 +345,7 @@ QR Code Management{% endblock %} {% block extra_head %}
|
||||
<div class="info-row">
|
||||
<span class="info-label">QR Address</span>
|
||||
<span class="info-value"
|
||||
>{{ qr_code.address if qr_code else 'N/A' }}</span
|
||||
>{{ qr_code.location_address if qr_code else 'N/A' }}</span
|
||||
>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
|
||||
Reference in New Issue
Block a user