37 lines
985 B
Python
37 lines
985 B
Python
from sqlalchemy import *
|
|
from flask import render_template
|
|
from ruqqus.__main__ import Base
|
|
|
|
class Title(Base):
|
|
|
|
__tablename__ = "titles"
|
|
id = Column(Integer, primary_key=True)
|
|
is_before = Column(Boolean, default=True)
|
|
text = Column(String(64))
|
|
qualification_expr = Column(String(256))
|
|
requirement_string = Column(String(512))
|
|
color = Column(String(6), default="888888")
|
|
kind = Column(Integer, default=1)
|
|
|
|
background_color_1 = Column(String(6), default=None)
|
|
background_color_2 = Column(String(6), default=None)
|
|
gradient_angle = Column(Integer, default=0)
|
|
box_shadow_color = Column(String(32), default=None)
|
|
text_shadow_color = Column(String(32), default=None)
|
|
|
|
def check_eligibility(self, v):
|
|
|
|
return bool(eval(self.qualification_expr, {}, {"v": v}))
|
|
|
|
@property
|
|
def rendered(self):
|
|
return render_template('title.html', t=self)
|
|
|
|
@property
|
|
def json(self):
|
|
|
|
return {'id': self.id,
|
|
'text': self.text,
|
|
'color': f'#{self.color}',
|
|
'kind': self.kind
|
|
}
|