示例#1
0
class EventDance(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    dance_id = db.Column(db.Integer, db.ForeignKey('dance.id'))
    event_id = db.Column(db.Integer, db.ForeignKey('event.id'))

    def __init__(self, dance_id, event_id):
        self.dance_id = dance_id
        self.event_id = event_id
示例#2
0
class EventPromoter(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    promo_id = db.Column(db.Integer, db.ForeignKey('promoter.id'))
    event_id = db.Column(db.Integer, db.ForeignKey('event.id'))

    def __init__(self, promo_id, event_id):
        self.promo_id = promo_id
        self.event_id = event_id
示例#3
0
class EventTag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    tag_id = db.Column(db.Integer, db.ForeignKey('tag.id'))
    event_id = db.Column(db.Integer, db.ForeignKey('event.id'))

    def __init__(self, tag_id, event_id):
        self.tag_id = tag_id
        self.event_id = event_id
示例#4
0
class UserPromoter(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    promo_id = db.Column(db.Integer, db.ForeignKey('promoter.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __init__(self, promo_id, user_id):
        self.promo_id = promo_id
        self.user_id = user_id
示例#5
0
class LogEntry(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    timestamp = db.Column(db.String(30))
    message = db.Column(db.String(140))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __init__(self, message):
        self.message = message
        self.timestamp = strftime("%d-%m-%Y %H:%M:%S")
        self.user_id = 1
示例#6
0
class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    color = db.Column(db.Integer)
    dance_id = db.Column(db.Integer, db.ForeignKey('dance.id'))

    # taggedevents = db.relationship('Event', backref='tags', lazy='dynamic')

    def __init__(self, name, dance_id, color=Color.GREY):
        self.name = name
        self.color = color.value
        self.dance_id = dance_id

    def style(self):
        color = Color(self.color)
        return "tagged tag-%s" % color.name.lower()
示例#7
0
class Event(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(70))
    description = db.Column(db.Text)
    status = db.Column(db.Integer)

    venue_id = db.Column(db.Integer, db.ForeignKey('venue.id'))

    startat = db.Column(db.Time)
    endat = db.Column(db.Time)
    date = db.Column(db.Date)
    day = db.Column(db.Integer)

    tags = relationship("Tag",
                        secondary=EventTag.__table__,
                        backref="taggedevents")
    promoters = relationship("Promoter",
                             secondary=EventPromoter.__table__,
                             backref="promoterevents")
    dances = relationship("Dance",
                          secondary=EventDance.__table__,
                          backref="danceevents")

    flyerlink = db.Column(db.String(100))

    def get_next_date(self):
        if self.status == 1:
            return self.date
        elif self.status == 2:
            return self.day
        else:
            return self.date

    def __init__(self,
                 title,
                 venue_id,
                 description,
                 startat,
                 endat,
                 day=1,
                 status=1,
                 date=datetime.datetime.utcnow().date()):
        self.title = title
        self.description = description
        self.status = Status.ONE_OFF.value
        self.venue_id = venue_id
        self.startat = startat
        self.endat = endat
        self.day = day
        self.date = date
        self.status = status

    def getNextDate(self):
        if self.status == 1:
            return self.date
        elif self.status == 2:

            today = datetime.datetime.today().weekday() + 1
            inc = (self.day - today) % 7
            nextdate = datetime.datetime.utcnow() + datetime.timedelta(
                days=inc)
            return nextdate.date()
        else:
            return self.date

    def setFlyerLink(self, file):
        msg = ''
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            msg = ('No selected file')
            # return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            if not os.path.exists(
                    os.path.join(app.config['UPLOAD_FOLDER'], str(self.id))):
                os.makedirs(
                    os.path.join(app.config['UPLOAD_FOLDER'], str(self.id)))
            file.save(
                os.path.join(app.config['UPLOAD_FOLDER'], str(self.id),
                             filename))
            # return redirect(url_for('uploaded_file',
            #                         filename=filename))
            self.flyerlink = os.path.join(app.config['SERVE_FOLDER'],
                                          str(self.id), filename)
        return msg