def get_value(self,type): from mysite.personnel.models import Department,Area if type==1: data=self.oldvalue else: data=self.newvalue #print "emp data:%s"%data if not data: return "" if self.changepostion==1: return u"%s"%Department.objects.get(pk=int(data)) elif self.changepostion==2: # where={} # where['value__exact']=int(data) # where['display__exact']='TITLE' # t=BaseCode.objects.filter(Q(**where)) t=base_code_by('TITLE') for i,v in t: if int(i)==int(data): return v return "" # if t: # return u"%s"%t[0] # else: # return "" elif self.changepostion==3: return u"%s"%EMPTYPE[int(data)-1][1] else: area=Area.objects.filter(pk__in=data.split(",")) return u",".join([u"%s"%a.areaname for a in area])
class Department(CachingModel): """ 部门表,实现单位的组织架构 """ name=models.CharField(_(u'名字'), max_length=40) parent=models.ForeignKey("Department", verbose_name=_(u'父级部门'), help_text=_(u'父部门'), null=True, blank=True) dept_type=models.CharField(max_length=40, null=True, blank=True, verbose_name=_(u"类型"), help_text=_(u'部门类型'), choices=base_code_by('ORG') ) def limit_parent_to(self, queryset): #限制不能设置一个部门的上级部门为其自身或子部门 if not self: return queryset result=[] for d in queryset: dd=d while dd: if dd.id==self.id: break dd=dd.parent if not dd: result.append(d.id) return queryset.filter(id__in=result) def __unicode__(self): return self.name class Admin(CachingModel.Admin): app_menu="att" initial_data=[ {'name': 'test1'}, {'name': 'test2', "parent":{'name': 'test1'}} ]
class Staff(CachingModel): name = models.CharField(max_length=40) age = models.IntegerField(default=23) dept = models.ForeignKey(Department) sex = models.CharField(max_length=2, choices=base_code_by("SEX")) hired = models.DateField(_(u"雇佣时间")) title = models.CharField(max_length=4, choices=base_code_by("title"), default='dept') def __unicode__(self): return self.name class opLeave(Operation): u""" 对员工进行离职操作 """ operation_name = u'离职' confirm = u"Let %s leave, are you sure?" def action(self): print u"%s is leave now" % self.object def can_action(self): return self.object.status in (STATUS_OK, STATUS_PAUSED) class opToDevice(Operation): u""" 把员工传送到指定设备 """ operation_name = u"传送到设备" confirm = u'Let %s ' + operation_name + u', are you sure?' # params=(ParamChoiceData(u'选择要传送到的设备', Device), # ParamDateTime(u'选择在设备上的时间范围', param_name='time_range', required=False)) def action(self, Device, time_range): print u"%s is be delivered to device [%s] during %s!" % ( self.object, Device, time_range) class Admin(CachingModel.Admin): cache = False app_menu = "att"
class ReservationManage(CachingModel): """ 预约管理 """ id = models.AutoField(_(u'预约ID'), primary_key=True, editable=False, null=False) # EName = models.CharField(_(u'姓名'), db_column="name", null=True, max_length=24, blank=True, default="") # lastname = models.CharField(_(u'姓氏'), max_length=20, null=True, blank=True, editable=True) pin = models.CharField(_(u'被访人编号'), max_length=100, null=True, blank=True) #给访客下发权限时使用,用于查询人员表的PIN visited_person = models.CharField(_(u'被访人'), null=False, max_length=24, blank=True, default="") title = models.CharField(_(u'职务'), max_length=50, null=True, blank=True, choices=base_code_by('TITLE')) telephone = models.CharField(_(u'电话'), max_length=20, null=True, blank=True, default='') extension_set = models.CharField(_(u'分机号'), max_length=4, null=True, blank=True) identity_card = models.CharField(_(u'身份证号码'), max_length=20, null=True, blank=True, default='') visitor = models.CharField(_(u'来访人'), null=False, max_length=24, blank=True, default="") visit_company = models.CharField(_(u'来访单位'), null=False, max_length=24, blank=True, default="") visit_reason = models.CharField(_(u'来访事由'), max_length=30, null=True, choices=VISIT_REASON, blank=True) come_date = models.DateField(_(u'来访时间'), null=True, blank=True) def __unicode__(self): return u"%s %s" % (self.pin, self.visited_person or "") class Admin(CachingModel.Admin): sort_fields = ["come_date"] app_menu = "visitor" help_text = _(u"如果新增的访客在访客列表中未能显示,请联系管理员!") #search_fields = ['pin', 'visited_person', 'visitor'] list_display = ('pin', 'visited_person', 'title', 'telephone', 'extension_set', 'visitor', 'visit_company', 'visit_reason', 'come_date') adv_fields = [ 'pin', 'visited_person', 'visitor', 'visit_reason', 'come_date' ] # list_filter = ('type', 'parent', 'invalidate') # newadded_column = { # 'parent':'get_parent', # } #import_fields = ['code', 'name', 'parent'] #default_widgets = {'parent': ZDeptChoiceWidget(attrs={"async_model":"personnel__Department"})} query_fields = ['pin', 'visited_person', 'visitor'] #disabled_perms = ["clear_department"] menu_index = 1 cache = 3600 position = _(u'访客系统 -> 预约管理') #report_fields=['code', 'name', 'parent'] class Meta: app_label = 'visitor' db_table = 'reservation_manage' # ordering = ('into_date', 'state') verbose_name = _(u'预约管理') verbose_name_plural = verbose_name
def get_empchange_postion_list(num): if num==1: #部门 return Department.objects.all().values_list('id','name') elif num==2:#职务 return BaseCode.objects.filter(content='TITLE').values_list('id','display') elif num==3:#雇用类型 return EMPTYPE else: #区域 return Area.objects.all().values_list('id','areaname') POSTIONMODEL=[ Department.objects.all(), base_code_by('TITLE'), EMPTYPE, Area.objects.all() ] def show_visible(): if settings.APP_CONFIG.language.language!='zh-cn': return False else: if "mysite.att" in settings.INSTALLED_APPS: return True else: return False from model_emp import EmpForeignKey class EmpChange(CachingModel):
ip_address=models.CharField(max_length=40) dept=models.ForeignKey(Department) def __unicode__(self): return self.alias or self.SN class Admin(CachingModel.Admin): initial_data=[ {"dept": {'name': 'test1'}, 'alias':"device1", 'SN':"1111111"}, {"dept": {'name': 'test3', "parent":{'name':'test2'}}, 'alias':"device2", 'SN':"2222222"}, {"dept": {'name': 'test_dept', "parent":{'name':'test3'}}, 'alias':"device3", 'SN':"33333333"} ] app_menu="att" class Staff(CachingModel): name=models.CharField(max_length=40) age=models.IntegerField(default=23) dept=models.ForeignKey(Department) sex=models.CharField(max_length=2, choices=base_code_by("SEX")) hired=models.DateField(_(u"雇佣时间")) title=models.CharField(max_length=4, choices=base_code_by("title"), default='dept') def __unicode__(self): return self.name class opLeave(Operation): u""" 对员工进行离职操作 """ operation_name=u'离职' confirm=u"Let %s leave, are you sure?" def action(self): print u"%s is leave now"%self.object def can_action(self): return self.object.status in (STATUS_OK, STATUS_PAUSED) class opToDevice(Operation): u"""