models.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import datetime
  4. from mongoengine import DateTimeField, ListField, StringField, IntField
  5. from apps.web.core import ROLE
  6. from apps.web.core.db import Searchable
  7. from apps.web.common.models import UserSearchable
  8. from apps.web.constant import Const
  9. from apps.web.core.sysparas import SysParas
  10. class TestEntry(Searchable):
  11. createdTime = DateTimeField(default = datetime.datetime.now)
  12. meta = {
  13. "collection": "test_entry",
  14. "db_alias": "logdata"
  15. }
  16. class Tester(UserSearchable):
  17. features = ListField(verbose_name = 'features', default = Const.TESTER_DEFAULT_FEATURES)
  18. more = StringField(verbose_name = u'备注', default = '')
  19. search_fields = ('username', 'nickname', 'remarks')
  20. meta = {
  21. 'collection': 'tester', 'db_alias': 'default'
  22. }
  23. def to_dict(self, shadow = False):
  24. rv = super(Tester, self).to_dict()
  25. return rv
  26. def has_privilage(self, privilage):
  27. special_privilage = SysParas.get_special_privilage(ROLE.tester) # type: dict
  28. if not special_privilage or privilage not in special_privilage:
  29. return False
  30. if self.username not in special_privilage[privilage]:
  31. return False
  32. return True
  33. class TestRecord(Searchable):
  34. testerName = StringField(verbose_name = 'username', default = '')
  35. nickname = StringField(verbose_name = 'nickname', default = '')
  36. dateTimeAdded = DateTimeField(verbose_name = 'dateTimeAdded', default = None)
  37. logicalCode = StringField(verbose_name = 'logicalCode', default = '')
  38. result = StringField(verbose_name = 'result', default = '')
  39. desc = StringField(verbose_name = 'desc', default = '')
  40. search_fields = ('logicalCode', 'desc')
  41. meta = {
  42. "collection": "test_record",
  43. "db_alias": "logdata"
  44. }
  45. class TestStats(Searchable):
  46. date = StringField(verbose_name = 'date', default = '')
  47. testerName = StringField(verbose_name = 'username', default = '')
  48. all = IntField(verbose_name = 'allCount', default = '')
  49. success = IntField(verbose_name = 'successCount', default = 0) # 成功的台数
  50. failed = IntField(verbose_name = 'successCount', default = 0)
  51. okScale = IntField(verbose_name = u'测试通过率', default = 0)
  52. meta = {
  53. "collection": "test_stats",
  54. "db_alias": "logdata"
  55. }