mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
Form zur Prüfung und Ablehnung trennen
This commit is contained in:
parent
86a93cb31a
commit
58344bc3be
@ -93,4 +93,8 @@ tr.table-line-through td {
|
||||
|
||||
.text-highlight {
|
||||
color: #dc3545!important;
|
||||
}
|
||||
|
||||
.w-normal {
|
||||
max-width: 1024px;
|
||||
}
|
||||
@ -866,7 +866,7 @@ if (URL) {
|
||||
<div class="py-1">
|
||||
<label class="btn btn-secondary mb-0" for="photo-image_file" title="{{ _('Choose image file') }}">
|
||||
<input type="file" class="sr-only" id="photo-image_file" name="photo" accept="image/*" />
|
||||
<span>{{ _('Choose image file') }}...</span>
|
||||
<span>{{ _('Choose image file') }}…</span>
|
||||
</label>
|
||||
<button id="photo-edit-btn" class="btn btn-outline-secondary show-if-photo-exists"><i class="fa fa-edit"></i></button>
|
||||
<button id="photo-delete-btn" class="btn btn-outline-secondary show-if-photo-exists"><i class="fa fa-trash"></i></button>
|
||||
@ -919,7 +919,7 @@ if (URL) {
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
{% if user_rights['can_update_event'] %}
|
||||
<a class="dropdown-item" href="{{ url_for('event_update', event_id=event.id) }}"><i class="fa fa-edit"></i> {{ _('Edit event') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}"><i class="fa fa-trash"></i> {{ _('Delete event') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}"><i class="fa fa-trash"></i> {{ _('Delete event') }}…</a>
|
||||
{% endif %}
|
||||
{% if user_rights['can_reference_event'] %}
|
||||
<a class="dropdown-item" href="{{ url_for('event_reference', event_id=event.id) }}"><i class="fa fa-link"></i> {{ _('Reference event') }}</a>
|
||||
@ -944,3 +944,48 @@ if (URL) {
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.9/cropper.css" integrity="sha512-949FvIQOibfhLTgmNws4F3DVlYz3FmCRRhJznR22hx76SKkcpZiVV5Kwo0iwK9L6BFuY+6mpdqB2+vDIGVuyHg==" crossorigin="anonymous" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cropper/1.0.1/jquery-cropper.js" integrity="sha512-7H4tikIFoyAdYD31w/uNYvvAUL6gyunWXLwTQ7ZXkyjD+brw+PfJpLxFkANnbkKnSJzU89YpnF3fJKbpvV+QYg==" crossorigin="anonymous"></script>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro render_event_suggestion(event_suggestion) %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
{{ _('Event suggestion') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
{% if event_suggestion.photo_id %}
|
||||
<div class="">
|
||||
{{ render_image(event_suggestion.photo, class='rounded', style='object-fit: cover; height: 20vh;') }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="text-highlight text-uppercase font-weight-bold">{{ event_suggestion.start | dateformat('full') }} um {{ event_suggestion.start | timeformat('short') }}</div>
|
||||
<div class="font-weight-bold" style="font-size: 1.8rem;">{{ event_suggestion.name }}</div>
|
||||
<div class="text-muted">{{ event_suggestion.event_place.name or event_suggestion.event_place_text }}</div>
|
||||
|
||||
<div class="mt-3"><i class="fa fa-fw fa-sitemap"></i> {{ event_suggestion.organizer.name or event_suggestion.organizer_text }}</div>
|
||||
{{ render_link_prop(event_suggestion.external_link) }}
|
||||
<div class="my-2">{{ event_suggestion.description }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
{{ _('Contact') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_string_prop(event_suggestion.contact_name, 'fa-user') }}
|
||||
{{ render_email_prop(event_suggestion.contact_email) }}
|
||||
{{ render_phone_prop(event_suggestion.contact_phone) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
{{ _('Review status') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_event_review_status(event_suggestion) }}
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
|
||||
{{ render_event_menu(user_rights, event) }}
|
||||
|
||||
<div style="max-width: 1024px;">
|
||||
<div class="w-normal">
|
||||
|
||||
{{ render_event_props(event, event.start, event.end, dates, user_can_verify_event) }}
|
||||
|
||||
|
||||
@ -273,7 +273,7 @@
|
||||
</nav>
|
||||
</div>
|
||||
<div class="spinner-border m-3" role="status" id="spinner" style="display: none;">
|
||||
<span class="sr-only">Loading...</span>
|
||||
<span class="sr-only">Loading…</span>
|
||||
</div>
|
||||
<div class="alert alert-danger m-3" role="alert" id="error_alert" style="display: none;"></div>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
|
||||
{{ render_event_menu(user_rights, event_date.event) }}
|
||||
|
||||
<div style="max-width: 1024px;">
|
||||
<div class="w-normal">
|
||||
{{ render_event_props(event, event_date.start, event_date.end) }}
|
||||
</div>
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div style="max-width: 1024px;">
|
||||
<div class="w-normal">
|
||||
|
||||
<h1>{{ _('Create event suggestion') }}</h1>
|
||||
|
||||
|
||||
24
templates/event_suggestion/reject.html
Normal file
24
templates/event_suggestion/reject.html
Normal file
@ -0,0 +1,24 @@
|
||||
{% extends "layout_manage.html" %}
|
||||
{% set active_id = "reviews" %}
|
||||
{% from "_macros.html" import render_event_suggestion, render_image, render_radio_buttons, render_phone_prop, render_email_prop, render_string_prop, render_field_with_errors, render_field, render_event_props, render_image_with_link, render_place, render_link_prop %}
|
||||
{% block title %}
|
||||
{{ event_suggestion.name }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1>{{ _('Reject event suggestion') }}</h1>
|
||||
|
||||
<div class="w-normal">
|
||||
|
||||
{{ render_event_suggestion(event_suggestion) }}
|
||||
|
||||
<div class="my-4">
|
||||
<form action="" method="POST">
|
||||
{{ form.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.rejection_resaon) }}
|
||||
<p>{{ form.submit(class="btn btn-danger")|safe }}</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@ -1,5 +1,6 @@
|
||||
{% extends "layout.html" %}
|
||||
{% from "_macros.html" import render_image, render_radio_buttons, render_phone_prop, render_email_prop, render_string_prop, render_field_with_errors, render_field, render_event_props, render_image_with_link, render_place, render_link_prop %}
|
||||
{% extends "layout_manage.html" %}
|
||||
{% set active_id = "reviews" %}
|
||||
{% from "_macros.html" import render_event_suggestion, render_image, render_radio_buttons, render_phone_prop, render_email_prop, render_string_prop, render_field_with_errors, render_field, render_event_props, render_image_with_link, render_place, render_link_prop %}
|
||||
{% block title %}
|
||||
{{ event_suggestion.name }}
|
||||
{% endblock %}
|
||||
@ -7,59 +8,20 @@
|
||||
|
||||
<h1>{{ _('Review event suggestion') }}</h1>
|
||||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
{{ _('Event suggestion') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="w-normal">
|
||||
|
||||
{% if event_suggestion.photo_id %}
|
||||
<div class="">
|
||||
{{ render_image(event_suggestion.photo, class='rounded', style='object-fit: cover; height: 20vh;') }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ render_event_suggestion(event_suggestion) }}
|
||||
|
||||
<div class="text-highlight text-uppercase font-weight-bold">{{ event_suggestion.start | dateformat('full') }} um {{ event_suggestion.start | timeformat('short') }}</div>
|
||||
<div class="font-weight-bold" style="font-size: 1.8rem;">{{ event_suggestion.name }}</div>
|
||||
<div class="text-muted">{{ event_suggestion.event_place.name or event_suggestion.event_place_text }}</div>
|
||||
|
||||
<div class="mt-3"><i class="fa fa-fw fa-sitemap"></i> {{ event_suggestion.organizer.name or event_suggestion.organizer_text }}</div>
|
||||
{{ render_link_prop(event_suggestion.external_link) }}
|
||||
<div class="my-2">{{ event_suggestion.description }}</div>
|
||||
</div>
|
||||
{% if event_suggestion.verified and event_suggestion.event_id %}
|
||||
<div class="my-4">
|
||||
<a class="btn btn-success" href="{{ url_for('event', event_id=event_suggestion.event_id) }}" role="button"><i class="fa fa-arrow-right"></i> {{ _('View event') }}</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="d-flex justify-content-between my-4">
|
||||
<a class="btn btn-success m-1" href="{{ url_for('event_create_for_admin_unit_id', id=event_suggestion.admin_unit_id, event_suggestion_id=event_suggestion.id) }}" role="button"><i class="fa fa-arrow-right"></i> {{ _('Create event from suggestion') }}…</a>
|
||||
<a class="btn btn-danger m-1" href="{{ url_for('event_suggestion_reject', event_suggestion_id=event_suggestion.id) }}" role="button"><i class="fa fa-ban"></i> {{ _('Reject event suggestion') }}…</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
{{ _('Contact') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_string_prop(event_suggestion.contact_name, 'fa-user') }}
|
||||
{{ render_email_prop(event_suggestion.contact_email) }}
|
||||
{{ render_phone_prop(event_suggestion.contact_phone) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if event_suggestion.verified and event_suggestion.event_id %}
|
||||
<div class="my-4">
|
||||
<a class="btn btn-success" href="{{ url_for('event', event_id=event_suggestion.event_id) }}" role="button"><i class="fa fa-arrow-right"></i> {{ _('View event') }}</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="my-4">
|
||||
<a class="btn btn-success" href="{{ url_for('event_create_for_admin_unit_id', id=event_suggestion.admin_unit_id, event_suggestion_id=event_suggestion.id) }}" role="button"><i class="fa fa-arrow-right"></i> {{ _('Create event from suggestion') }}</a>
|
||||
</div>
|
||||
|
||||
<div class="font-italic font-weight-bold my-4 text-uppercase">
|
||||
oder
|
||||
</div>
|
||||
|
||||
<div class="my-4">
|
||||
<form action="" method="POST">
|
||||
{{ form.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.rejection_resaon) }}
|
||||
<p>{{ form.submit(class="btn btn-danger")|safe }}</p>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
@ -25,7 +25,7 @@
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event', event_id=event.id) }}">{{ _('View') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_update', event_id=event.id) }}">{{ _('Edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}">{{ _('Delete') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ render_event_status_pill(event) }}
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ invitation.email }}</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('manage_admin_unit_invitation_delete', id=invitation.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('manage_admin_unit_invitation_delete', id=invitation.id) }}">{{ _('Delete') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@ -33,7 +33,7 @@
|
||||
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ member.user.email }}</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('manage_admin_unit_member_update', id=member.id) }}">{{ _('Edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('manage_admin_unit_member_delete', id=member.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('manage_admin_unit_member_delete', id=member.id) }}">{{ _('Delete') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
<small>{{ render_roles(member.roles)}}</small>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event_create_for_admin_unit_id', id=admin_unit.id, organizer_id=organizer.id) }}">{{ _('Create event') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('organizer_update', id=organizer.id) }}">{{ _('Edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('organizer_delete', id=organizer.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('organizer_delete', id=organizer.id) }}">{{ _('Delete') }}…</a>
|
||||
<!--<a class="dropdown-item" href="#">{{ _('Assistents') }}</a>-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ place.name }}</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event_place_update', id=place.id) }}">{{ _('Edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_place_delete', id=place.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_place_delete', id=place.id) }}">{{ _('Delete') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ request.event.name }}</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event_reference_request_review', id=request.id) }}">{{ _('Review request') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_reference_request_review', id=request.id) }}">{{ _('Review request') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ render_reference_request_review_status_pill(request) }}
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event', event_id=reference.event.id) }}">{{ _('View') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_reference_update', id=reference.id) }}">{{ _('Edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ url_for('reference_delete', id=reference.id) }}">{{ _('Delete') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('reference_delete', id=reference.id) }}">{{ _('Delete') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ render_event_status_pill(reference.event) }}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ event_suggestion.name }}</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="{{ url_for('event_suggestion_review', event_suggestion_id=event_suggestion.id) }}">{{ _('Review event suggestion') }}...</a>
|
||||
<a class="dropdown-item" href="{{ url_for('event_suggestion_review', event_suggestion_id=event_suggestion.id) }}">{{ _('Review event suggestion') }}…</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ render_event_review_status_pill(event_suggestion) }}
|
||||
|
||||
@ -116,7 +116,7 @@ $( function() {
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-border m-3" role="status" id="spinner" style="display: none;">
|
||||
<span class="sr-only">Loading...</span>
|
||||
<span class="sr-only">Loading…</span>
|
||||
</div>
|
||||
<div class="alert alert-danger m-3" role="alert" id="error_alert" style="display: none;"></div>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
{{ render_field(form.submit) }}
|
||||
</form>
|
||||
|
||||
<div class="mt-3" style="max-width: 1024px;">
|
||||
<div class="mt-3 w-normal">
|
||||
|
||||
{{ render_event_props(event, event.start, event.end, dates) }}
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<div style="max-width: 1024px;">
|
||||
<div class="w-normal">
|
||||
{{ render_event_props(event, event_date.start, event_date.end) }}
|
||||
</div>
|
||||
|
||||
|
||||
Binary file not shown.
@ -647,7 +647,7 @@ msgstr "Unzulässig"
|
||||
|
||||
#: forms/event_suggestion.py:52
|
||||
msgid "Reject event suggestion"
|
||||
msgstr "Vorgeschlagene Veranstaltung ablehen"
|
||||
msgstr "Vorgeschlagene Veranstaltung ablehnen"
|
||||
|
||||
#: forms/organizer.py:37 templates/manage/organizers.html:12
|
||||
#: templates/organizer/create.html:10
|
||||
|
||||
@ -51,11 +51,23 @@ def event_suggestion_create_for_admin_unit(au_short_name):
|
||||
flash_errors(form)
|
||||
return render_template('event_suggestion/create.html', form=form, admin_unit=admin_unit)
|
||||
|
||||
@app.route('/event_suggestion/<int:event_suggestion_id>/review', methods=('GET', 'POST'))
|
||||
@app.route('/event_suggestion/<int:event_suggestion_id>/review')
|
||||
def event_suggestion_review(event_suggestion_id):
|
||||
event_suggestion = EventSuggestion.query.get_or_404(event_suggestion_id)
|
||||
access_or_401(event_suggestion.admin_unit, 'event:verify')
|
||||
|
||||
return render_template('event_suggestion/review.html',
|
||||
admin_unit=event_suggestion.admin_unit,
|
||||
event_suggestion=event_suggestion)
|
||||
|
||||
@app.route('/event_suggestion/<int:event_suggestion_id>/reject', methods=('GET', 'POST'))
|
||||
def event_suggestion_reject(event_suggestion_id):
|
||||
event_suggestion = EventSuggestion.query.get_or_404(event_suggestion_id)
|
||||
access_or_401(event_suggestion.admin_unit, 'event:verify')
|
||||
|
||||
if event_suggestion.verified:
|
||||
return redirect(url_for('event_suggestion_review', event_suggestion_id=event_suggestion.id))
|
||||
|
||||
form = RejectEventSuggestionForm(obj=event_suggestion)
|
||||
|
||||
if form.validate_on_submit():
|
||||
@ -76,8 +88,9 @@ def event_suggestion_review(event_suggestion_id):
|
||||
else:
|
||||
flash_errors(form)
|
||||
|
||||
return render_template('event_suggestion/review.html',
|
||||
return render_template('event_suggestion/reject.html',
|
||||
form=form,
|
||||
admin_unit=event_suggestion.admin_unit,
|
||||
event_suggestion=event_suggestion)
|
||||
|
||||
@app.route('/event_suggestion/<int:event_suggestion_id>/review_status')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user