# -*- coding: utf-8 -*- # !/usr/bin/env python import datetime from mongoengine import DateTimeField, ListField, StringField, IntField from apps.web.core import ROLE from apps.web.core.db import Searchable from apps.web.common.models import UserSearchable from apps.web.constant import Const from apps.web.core.sysparas import SysParas class TestEntry(Searchable): createdTime = DateTimeField(default = datetime.datetime.now) meta = { "collection": "test_entry", "db_alias": "logdata" } class Tester(UserSearchable): features = ListField(verbose_name = 'features', default = Const.TESTER_DEFAULT_FEATURES) more = StringField(verbose_name = u'备注', default = '') search_fields = ('username', 'nickname', 'remarks') meta = { 'collection': 'tester', 'db_alias': 'default' } def to_dict(self, shadow = False): rv = super(Tester, self).to_dict() return rv def has_privilage(self, privilage): special_privilage = SysParas.get_special_privilage(ROLE.tester) # type: dict if not special_privilage or privilage not in special_privilage: return False if self.username not in special_privilage[privilage]: return False return True class TestRecord(Searchable): testerName = StringField(verbose_name = 'username', default = '') nickname = StringField(verbose_name = 'nickname', default = '') dateTimeAdded = DateTimeField(verbose_name = 'dateTimeAdded', default = None) logicalCode = StringField(verbose_name = 'logicalCode', default = '') result = StringField(verbose_name = 'result', default = '') desc = StringField(verbose_name = 'desc', default = '') search_fields = ('logicalCode', 'desc') meta = { "collection": "test_record", "db_alias": "logdata" } class TestStats(Searchable): date = StringField(verbose_name = 'date', default = '') testerName = StringField(verbose_name = 'username', default = '') all = IntField(verbose_name = 'allCount', default = '') success = IntField(verbose_name = 'successCount', default = 0) # 成功的台数 failed = IntField(verbose_name = 'successCount', default = 0) okScale = IntField(verbose_name = u'测试通过率', default = 0) meta = { "collection": "test_stats", "db_alias": "logdata" }