class Group(db.Model): id = db.Column(db.Integer, primary_key=True) owner = db.Column(db.String(50), nullable=False, primary_key=True) groupname = db.Column(db.String(50), nullable=False) members = db.Column(db.String(200), nullable=False) prevStageKey = db.Column(db.Integer, nullable=False) def __repr__(self): return "<Group {}>".format(self.groupname)
class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(100), unique=True) password = db.Column(db.String(100)) name = db.Column(db.String(1000)) privID = db.Column(db.Integer, nullable=False) token = db.Column(db.String(500)) def __repr__(self): return '<User %r>' % self.name
class Party(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False) target = db.Column(db.String(50), nullable=False) publicID = db.Column(db.String(500), nullable=False) side = db.Column(db.String(30), nullable=False) user_id = db.Column(db.Integer, nullable=False) def __repr__(self): return '<Key %r>' % self.username
class Message(db.Model): id = db.Column(db.Integer, primary_key=True) owner = db.Column(db.String(50), nullable=False) sender = db.Column(db.String(50), nullable=False) content = db.Column(db.String(1000), nullable=False) time = db.Column(db.DateTime, nullable=False) recipient = db.Column(db.String(500), default="") # Goal of 'owner' : when someone connects, the server # gives them their messages, without thinking about it def __repr__(self): return "<Message {}, from {}>".format(self.id, self.sender)
class users(db.Model, UserMixin): id = db.Column(db.Integer, db.Sequence('seq_users'), primary_key=True) email = db.Column(db.String(255), unique=True, nullable=False) password = db.Column(db.String(255)) name = db.Column(db.String(255), nullable=False) organisation = db.Column(db.String(255)) active = db.Column(db.Boolean(), default=True) roles = db.relationship('roles', secondary=users_roles, backref=db.backref('users', lazy='dynamic')) # def __str__(self): return "{0} ({1})".format(self.name, self.email)
class roles(db.Model, RoleMixin): id = db.Column(db.Integer(), primary_key=True) #,db.Sequence('seq_roles') name = db.Column(db.String(80), unique=True, nullable=False) # description = db.Column(db.String(255)) def __str__(self): return self.name
class OneTimeKey(db.Model): id = db.Column(db.Integer, primary_key=True) owner = db.Column(db.String(50), nullable=False) privateOTK = db.Column(db.Integer, nullable=False) serverID = db.Column(db.Integer, nullable=False) def __repr__(self): return "<OTK of {}".format(self.owner)
class users(db.Model, UserMixin): id = db.Column(db.Integer, db.Sequence('seq_users'), primary_key=True) email = db.Column(db.String(255), unique=True, nullable=False) password = db.Column(db.String(255)) name = db.Column(db.String(255), nullable=False) organisation = db.Column(db.String(255)) active = db.Column(db.Boolean(), default=True) roles = db.relationship('roles', secondary=users_roles, backref=db.backref('users', lazy='dynamic')) # preferences = db.Column(db.String(40000)) country = db.Column(db.String(50)) usercreationdate = db.Column(TIMESTAMP, default=func.now()) usercreationreason = db.Column(db.String(1000)) def __str__(self): return "{0} ({1})".format(self.name, self.email) def GetPref(self, prjid, name, defval): try: prjid = str(prjid) tmp = json.loads(self.preferences) if prjid not in tmp: return defval if isinstance(defval, int): return int(tmp[prjid].get(name, defval)) if isinstance(defval, (float)): return float(tmp[prjid].get(name, defval)) return tmp[prjid].get(name, defval) except: return defval def SetPref(self, prjid, name, newval): try: prjid = str(prjid) tmp = json.loads(self.preferences) if prjid not in tmp: tmp[prjid] = {} if tmp[prjid].get(name, -99999) == newval: return 0 # déjà la bonne valeur donc il n'y a rien à faire except: tmp = {} if prjid not in tmp: tmp[prjid] = {} tmp[prjid][name] = newval tmp[prjid]['ts'] = time.time() if len( tmp ) > 75: # si des settings pour plus de 50 projets on ne garde que les 25 plus recents newpref = { k: v for k, v in tmp.items() if isinstance(v, dict) and 'ts' in v } ChronoSorted = [[k, v['ts']] for k, v in newpref.items()] sorted(ChronoSorted, key=lambda r: r[1], reverse=True) tmp = {} for id, ts in ChronoSorted[0:50]: tmp[id] = newpref[id] self.preferences = json.dumps(tmp) return 1
class Task(db.Model): __tablename__ = 'temp_tasks' id = db.Column(db.Integer(), db.Sequence('seq_temp_tasks'), primary_key=True) owner_id = db.Column(db.Integer(), db.ForeignKey('users.id')) owner_rel = db.relationship("users") taskclass = db.Column(db.String(80)) taskstate = db.Column(db.String(80)) taskstep = db.Column(db.Integer()) progresspct = db.Column(db.Integer()) progressmsg = db.Column(db.String()) inputparam = db.Column(db.String()) creationdate = db.Column(db.DateTime()) lastupdate = db.Column(db.DateTime()) def __str__(self): return self.name
class User(db.Model): __tablename__ = "user" id = db.Column(db.Integer, primary_key=True) address = db.Column(db.String(100), unique=True) token = db.relationship('Token', backref='user') def __init__(self, address): self.address = address
owner_id = db.Column(db.Integer(), db.ForeignKey('users.id')) owner_rel = db.relationship("users") taskclass = db.Column(db.String(80)) taskstate = db.Column(db.String(80)) taskstep = db.Column(db.Integer()) progresspct = db.Column(db.Integer()) progressmsg = db.Column(db.String()) inputparam = db.Column(db.String()) creationdate = db.Column(db.DateTime()) lastupdate = db.Column(db.DateTime()) def __str__(self): return self.name setattr(Task, "questiondata", db.Column(db.String())) setattr(Task, "answerdata", db.Column(db.String())) class AsyncTask: def __init__(self, task=None): if task is None: self.task = Task() self.task.taskclass = self.__class__.__name__ self.task.taskstate = "Question" self.task.taskstep = 0 self.task.creationdate = datetime.datetime.now() else: self.task = task def Process(self):
class countrylist(db.Model, UserMixin): __tablename__ = 'countrylist' countryname = db.Column(db.String(50), primary_key=True, nullable=False)