Exemple #1
0
        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])
Exemple #2
0
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'}}
        ]
Exemple #3
0
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"
Exemple #4
0
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
Exemple #5
0
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):
Exemple #6
0
    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"""