You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.8 KiB
Python
83 lines
2.8 KiB
Python
from app import db
|
|
from marshmallow import Schema, fields, ValidationError, pre_load
|
|
import datetime
|
|
from sqlalchemy import Column, DateTime
|
|
|
|
|
|
# authors = db.Table('books_authors',
|
|
# db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True),
|
|
# db.Column('author_id', db.Integer, db.ForeignKey('authors.id'), primary_key=True)
|
|
# )
|
|
|
|
# stacks = db.Table('books_stacks',
|
|
# db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True),
|
|
# db.Column('stack_id', db.Integer, db.ForeignKey('stacks.id'), primary_key=True)
|
|
# )
|
|
|
|
# instances = db.Table('books_instances',
|
|
# db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True),
|
|
# db.Column('instance_id', db.Integer, db.ForeignKey('instances.id'), primary_key=True)
|
|
# )
|
|
|
|
class Location(db.Model):
|
|
__tablename__ = 'locations'
|
|
|
|
id = db.Column(db.Integer, primary_key = True)
|
|
longitude = db.Column(db.Numeric(10,8))
|
|
latitude = db.Column(db.Numeric(10,8))
|
|
loc_type = db.Column(db.String(200))
|
|
message = db.Column(db.String(4000))
|
|
audio = db.Column(db.String(255))
|
|
|
|
# title = db.Column(db.String(255))
|
|
# file = db.Column(db.String(255))
|
|
# cover = db.Column(db.String(255))
|
|
# fileformat = db.Column(db.String(255))
|
|
# category = db.Column(db.String(255))
|
|
# year_published = db.Column(db.Numeric(4,0))
|
|
# description = db.Column(db.String(2500))
|
|
# html = db.Column(db.String(255))
|
|
# downloads = db.Column(db.Numeric(100,0))
|
|
# authors = db.relationship('Author', secondary=authors,cascade="delete", lazy='subquery',
|
|
# backref=db.backref('books', lazy=True),passive_deletes=True)
|
|
# stacks = db.relationship('Stack', secondary=stacks, lazy='subquery',
|
|
# backref=db.backref('books', lazy=True))
|
|
# instances = db.relationship('Instance', secondary=instances, lazy='subquery',
|
|
# backref=db.backref('books', lazy=True))
|
|
# scapeX = db.Column(db.Numeric(10,2))
|
|
# scapeY = db.Column(db.Numeric(10,2))
|
|
# message = db.Column(db.String(1000))
|
|
# sameness = db.Column(db.Numeric())
|
|
# diversity = db.Column(db.Numeric())
|
|
# gender = db.Column(db.Numeric())
|
|
# who = db.Column(db.String(255))
|
|
|
|
|
|
def __init__(self, longitude, latitude, loc_type, message, audio):
|
|
self.longitude = longitude
|
|
self.latitude = latitude
|
|
self.loc_type = loc_type
|
|
self.message = message
|
|
self.audio = audio
|
|
|
|
# def __repr__(self):
|
|
# return '<Title %r>' % self.title
|
|
|
|
def get_id(self):
|
|
return self.id
|
|
|
|
|
|
|
|
class LocationSchema(Schema):
|
|
id = fields.Int(dump_only=True)
|
|
longitude = fields.Float()
|
|
latitude = fields.Float()
|
|
loc_type = fields.String()
|
|
message = fields.String()
|
|
audio = fields.String()
|
|
|
|
|
|
def must_not_be_blank(data):
|
|
if not data:
|
|
raise ValidationError('You forgot to write stuff.')
|