kopia lustrzana https://github.com/glidernet/ogn-python
Fixed logbook
rodzic
7f8df24d96
commit
c3c4f029bd
|
@ -1,6 +1,7 @@
|
||||||
from sqlalchemy.ext.hybrid import hybrid_property
|
from sqlalchemy.ext.hybrid import hybrid_property
|
||||||
from sqlalchemy.sql import null, case
|
from sqlalchemy.sql import null, case
|
||||||
from app import db
|
from app import db
|
||||||
|
from app.model import Device
|
||||||
|
|
||||||
|
|
||||||
class Logbook(db.Model):
|
class Logbook(db.Model):
|
||||||
|
@ -23,6 +24,9 @@ class Logbook(db.Model):
|
||||||
landing_airport_id = db.Column(db.Integer, db.ForeignKey("airports.id", ondelete="CASCADE"), index=True)
|
landing_airport_id = db.Column(db.Integer, db.ForeignKey("airports.id", ondelete="CASCADE"), index=True)
|
||||||
landing_airport = db.relationship("Airport", foreign_keys=[landing_airport_id])
|
landing_airport = db.relationship("Airport", foreign_keys=[landing_airport_id])
|
||||||
|
|
||||||
|
def get_device(self):
|
||||||
|
return db.session.query(Device).filter(Device.address == self.address).one()
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def duration(self):
|
def duration(self):
|
||||||
return None if (self.landing_timestamp is None or self.takeoff_timestamp is None) else self.landing_timestamp - self.takeoff_timestamp
|
return None if (self.landing_timestamp is None or self.takeoff_timestamp is None) else self.landing_timestamp - self.takeoff_timestamp
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
<table class="datatable table table-striped table-bordered">
|
<table class="datatable table table-striped table-bordered">
|
||||||
<tr><td>Name:</td><td>{{ device.name }}</td></tr>
|
<tr><td>Name:</td><td>{{ device.name }}</td></tr>
|
||||||
<tr><td>Address:</td><td>{{ device.address }}</td></tr>
|
<tr><td>Address:</td><td>{{ device.address }}</td></tr>
|
||||||
<tr><td>Real Address:</td><td>{{ device.real_address }}</td></tr>
|
<tr><td>Real Address:</td><td>{{ device.real_address if device.real_address else '-' }}</td></tr>
|
||||||
<tr><td>Stealth:</td><td>{{ device.stealth }}</td></tr>
|
<tr><td>Stealth:</td><td>{{ device.stealth if device.stealth else '-' }}</td></tr>
|
||||||
<tr><td>Aircraft Type:</td><td>{{ device.aircraft_type }}</td></tr>
|
<tr><td>Aircraft Type:</td><td>{{ device.aircraft_type }}</td></tr>
|
||||||
<tr><td>Software Version:</td><td>{{ device.software_version }}</td></tr>
|
<tr><td>Software Version:</td><td>{{ device.software_version if device.software_version else '-' }}</td></tr>
|
||||||
<tr><td>Hardware Version:</td><td>{{ device.hardware_version }}</td></tr>
|
<tr><td>Hardware Version:</td><td>{{ device.hardware_version if device.hardware_version else '-' }}</td></tr>
|
||||||
<tr><td>First seen:</td><td>{{ device.firstseen }}</td></tr>
|
<tr><td>First seen:</td><td>{{ device.firstseen }}</td></tr>
|
||||||
<tr><td>Last seen:</td><td>{{ device.lastseen }}</td></tr>
|
<tr><td>Last seen:</td><td>{{ device.lastseen }}</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -51,9 +51,9 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% for entry in logbook %}
|
{% for entry in logbook %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ loop.index }}</td>
|
<td>{{ loop.index }}</td>{% set device = entry.get_device() %}
|
||||||
<td><a href="{{ url_for('main.device_detail', id=entry.device.id) }}">{% if entry.device.info is not none and entry.device.info.registration|length %}{{ entry.device.info.registration }}{% else %}[{{ entry.device.address }}]{% endif %}</a></td>
|
<td><a href="{{ url_for('main.device_detail', device_name=device.name) }}">{% if device.info is not none and device.info.registration|length %}{{ device.info.registration }}{% else %}[{{ device.address }}]{% endif %}</a></td>
|
||||||
<td>{% if entry.device.info is not none and entry.device.info.aircraft|length %}{{ entry.device.info.aircraft }}{% else %}-{% endif %}</td>
|
<td>{% if device.info is not none and device.info.aircraft|length %}{{ device.info.aircraft }}{% else %}-{% endif %}</td>
|
||||||
<td>{% if entry.takeoff_timestamp is not none and entry.takeoff_airport.id == sel_airport %} {{ entry.takeoff_timestamp.strftime('%H:%M') }} {% endif %}</td>
|
<td>{% if entry.takeoff_timestamp is not none and entry.takeoff_airport.id == sel_airport %} {{ entry.takeoff_timestamp.strftime('%H:%M') }} {% endif %}</td>
|
||||||
<td>{% if entry.takeoff_track is not none and entry.takeoff_airport.id == sel_airport %} {{ '%02d' | format(entry.takeoff_track/10) }} {% endif %}</td>
|
<td>{% if entry.takeoff_track is not none and entry.takeoff_airport.id == sel_airport %} {{ '%02d' | format(entry.takeoff_track/10) }} {% endif %}</td>
|
||||||
<td>{% if entry.landing_timestamp is not none and entry.landing_airport.id == sel_airport %} {{ entry.landing_timestamp.strftime('%H:%M') }} {% endif %}</td>
|
<td>{% if entry.landing_timestamp is not none and entry.landing_airport.id == sel_airport %} {{ entry.landing_timestamp.strftime('%H:%M') }} {% endif %}</td>
|
||||||
|
|
Ładowanie…
Reference in New Issue