Resource.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from app import db
  2. from flask_login import UserMixin, AnonymousUserMixin
  3. from datetime import datetime
  4. from flask import jsonify
  5. class Resource(db.Model, UserMixin):
  6. __tablename__ = 'SYRESOURCE'
  7. ID = db.Column(db.String(36), primary_key=True)
  8. CREATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  9. UPDATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  10. NAME = db.Column(db.String(100))
  11. URL = db.Column(db.String(200))
  12. DESCRIPTION = db.Column(db.String(200))
  13. ICONCLS = db.Column(db.String(100))
  14. SEQ = db.Column(db.Integer)
  15. TARGET = db.Column(db.String(100))
  16. SYRESOURCETYPE_ID = db.Column(db.String, db.ForeignKey('SYRESOURCETYPE.ID'))
  17. SYRESOURCE_ID = db.Column(db.String, db.ForeignKey('SYRESOURCE.ID'))
  18. parent = db.relationship('Resource', remote_side=[ID], backref='resource', uselist=False)
  19. def get_id(self):
  20. return str(self.ID)
  21. def to_json(self):
  22. return {
  23. 'id': self.ID,
  24. 'createdatetime': self.CREATEDATETIME,
  25. 'updatedatetime': self.UPDATEDATETIME,
  26. 'name': self.NAME,
  27. 'url': self.URL,
  28. 'description': self.DESCRIPTION,
  29. 'iconCls': self.ICONCLS,
  30. 'seq': self.SEQ,
  31. 'target': self.TARGET,
  32. 'pid': self.get_pid(),
  33. 'syresourcetype': self.get_type_json()
  34. }
  35. def to_menu_json(self):
  36. return {
  37. 'id': self.ID,
  38. 'iconCls': self.ICONCLS,
  39. 'pid': self.get_pid(),
  40. 'state': 'open',
  41. 'checked': False,
  42. 'attributes': {
  43. 'target': self.TARGET,
  44. 'url': self.URL
  45. },
  46. 'text': self.NAME
  47. }
  48. def get_pid(self):
  49. if self.parent:
  50. return self.parent.ID
  51. return ''
  52. def get_type_json(self):
  53. if self.type:
  54. return self.type.to_json()
  55. return {}
  56. def __repr__(self):
  57. return '<Resource name:%r url:%r>\n' %(self.NAME, self.URL)