- [ ] absturz bei create event daniel
- [ ] event.verified kann in allen listen angezeigt werden
This commit is contained in:
Daniel Grams 2020-06-21 16:05:55 +02:00
parent 0582e48fb6
commit 38ae395bef
4 changed files with 21 additions and 19 deletions

20
app.py
View File

@ -159,25 +159,19 @@ def upsert_actor_for_admin_unit(admin_unit_id):
db.session.add(result)
return result
def upsert_org_or_admin_unit_for_admin_unit_id(admin_unit_id):
result = OrgOrAdminUnit.query.filter_by(admin_unit_id = admin_unit_id).first()
if result is None:
result = OrgOrAdminUnit(admin_unit_id = admin_unit_id)
db.session.add(result)
return result
def upsert_org_or_admin_unit_for_admin_unit(admin_unit):
return upsert_org_or_admin_unit_for_admin_unit_id(admin_unit.id)
def upsert_org_or_admin_unit_for_organization_id(organization_id):
result = OrgOrAdminUnit.query.filter_by(organization_id = organization_id).first()
result = OrgOrAdminUnit.query.filter_by(admin_unit = admin_unit).first()
if result is None:
result = OrgOrAdminUnit(organization_id = organization_id)
result = OrgOrAdminUnit(admin_unit = admin_unit)
db.session.add(result)
return result
def upsert_org_or_admin_unit_for_organization(organization):
return upsert_org_or_admin_unit_for_organization_id(organization.id)
result = OrgOrAdminUnit.query.filter_by(organization = organization).first()
if result is None:
result = OrgOrAdminUnit(organization = organization)
db.session.add(result)
return result
def upsert_location(street, postalCode, city, latitude = 0, longitude = 0):
result = Location.query.filter_by(street = street, postalCode=postalCode, city=city).first()

View File

@ -1,8 +1,8 @@
"""empty message
Revision ID: d6817447c0e7
Revision ID: 93158b40fde6
Revises:
Create Date: 2020-06-19 15:22:01.645876
Create Date: 2020-06-21 15:45:24.988479
"""
from alembic import op
@ -10,7 +10,7 @@ import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'd6817447c0e7'
revision = '93158b40fde6'
down_revision = None
branch_labels = None
depends_on = None
@ -156,6 +156,7 @@ def upgrade():
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('organization_id', sa.Integer(), nullable=True),
sa.Column('admin_unit_id', sa.Integer(), nullable=True),
sa.CheckConstraint('NOT(organization_id IS NULL AND admin_unit_id IS NULL)'),
sa.ForeignKeyConstraint(['admin_unit_id'], ['adminunit.id'], ),
sa.ForeignKeyConstraint(['organization_id'], ['organization.id'], ),
sa.PrimaryKeyConstraint('id'),

View File

@ -1,6 +1,7 @@
from app import db
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship, backref
from sqlalchemy.schema import CheckConstraint
from sqlalchemy import UniqueConstraint, Boolean, DateTime, Column, Integer, String, ForeignKey, Unicode, UnicodeText, Numeric
from flask_security import UserMixin, RoleMixin
import datetime
@ -147,12 +148,15 @@ class Actor(db.Model):
class OrgOrAdminUnit(db.Model):
__tablename__ = 'org_or_adminunit'
__table_args__ = (UniqueConstraint('organization_id', 'admin_unit_id'),)
__table_args__ = (
CheckConstraint('NOT(organization_id IS NULL AND admin_unit_id IS NULL)'),
UniqueConstraint('organization_id', 'admin_unit_id'),
)
id = Column(Integer(), primary_key=True)
organization_id = db.Column(db.Integer, db.ForeignKey('organization.id'))
organization = db.relationship('Organization', lazy="joined", backref=backref('org_or_adminunit', uselist=False, lazy=True))
organization = db.relationship('Organization', lazy="joined", backref=backref('org_or_adminunit', cascade="all, delete-orphan", uselist=False, lazy=True))
admin_unit_id = db.Column(db.Integer, db.ForeignKey('adminunit.id'))
admin_unit = db.relationship('AdminUnit', lazy="joined", backref=backref('org_or_adminunit', uselist=False, lazy=True))
admin_unit = db.relationship('AdminUnit', lazy="joined", backref=backref('org_or_adminunit', cascade="all, delete-orphan", uselist=False, lazy=True))
class Location(db.Model, TrackableMixin):
__tablename__ = 'location'

View File

@ -104,6 +104,9 @@
<td>{{ event.dates[0].start | datetimeformat }}</td>
<td>
<a href="{{ url_for('event', event_id=event.id) }}">{{ event.name }}</a>
{% if event.verified %}
<i class="fa fa-check-circle text-success" data-toggle="tooltip" title="{{ _('Verified') }}"></i>
{% endif %}
</td>
<td>{{ render_ooa(event.host) }}</td>
<td>{{ render_place(event.place) }}</td>