Example #1
0
        def action(self):
            from mysite.personnel.models.model_emp import Employee
            #from mysite.iclock.models.dev_comm_operate import sync_delete_user,sync_set_user
            from base.sync_api import SYNC_MODEL
            if not SYNC_MODEL:
                from mysite.iclock.models.model_cmmdata import adj_user_cmmdata, save_userarea_together
            import copy
            import datetime
            emps = self.request.POST.getlist('mutiple_emp')
            area = self.request.POST.getlist('AreaSelect')
            deptflag = self.request.POST.get('mutiple_emp_dept_all')
            if deptflag:  #按部门选择
                deptIDs = self.request.POST.getlist('deptIDs')
                emps = Employee.objects.filter(DeptID__in=deptIDs)
            datalist = []
            print len(emps)  #注意不能屏蔽掉~ 处理sqlserver2005的时候 为区域分配人员 仅分配100个人
            if len(emps) > 200:
                raise Exception(_(u'人员选择过多!'))
            for i in emps:
                if deptflag:
                    emp = Employee.objects.get(pk=i.pk)
                else:
                    emp = Employee.objects.get(pk=i)


#                    if emp.check_accprivage():
#                        devs=emp.search_device_byuser()
#                        sync_delete_user(devs, [emp])
                oldarea = ["%s" % u.pk for u in emp.attarea.select_related()]

                empchange = emp.__class__.empchange_set.related.model()
                empchange.UserID = emp
                empchange.changepostion = 4
                empchange.oldvalue = ",".join([
                    "%s" % i
                    for i in emp.attarea.select_related().values_list('pk')
                ])
                empchange.newvalue = ",".join(area)
                empchange.newids = [int(i) for i in area if i]
                empchange.changedate = datetime.datetime.now()
                empchange.save()

                emp.attarea = tuple(area)
                emp.save()
                #新增下载人员信息

                #sync_set_user(emp.search_device_byuser(), [emp])
                if not SYNC_MODEL:
                    datalist.append(
                        adj_user_cmmdata(emp,
                                         Area.objects.filter(pk__in=oldarea),
                                         emp.attarea.all(), True))

            if not SYNC_MODEL:
                save_userarea_together(Employee.objects.filter(pk__in=emps),
                                       Area.objects.filter(pk__in=area),
                                       datalist)
Example #2
0
          def action(self):
               from  mysite.personnel.models.model_emp import Employee
               #from mysite.iclock.models.dev_comm_operate import sync_delete_user,sync_set_user
               from mysite.iclock.models.model_cmmdata import adj_user_cmmdata,save_userarea_together
               import copy
               import datetime
               emps = self.request.POST.getlist('mutiple_emp')
               area =self.request.POST.getlist('AreaSelect')
               deptflag=self.request.POST.get('dept_all')
               if deptflag: #按部门选择
                  deptIDs=self.request.POST.getlist('deptIDs')
                  emps =Employee.objects.filter(DeptID__in=deptIDs)
               datalist=[] 
               print len(emps) #注意不能屏蔽掉~ 处理sqlserver2005的时候 为区域分配人员 仅分配100个人
               for i in emps:
                    if deptflag:
                        emp=Employee.objects.get(pk=i.pk)
                    else:
                        emp=Employee.objects.get(pk=i)
#                    if emp.check_accprivage():
#                        devs=emp.search_device_byuser()
#                        sync_delete_user(devs, [emp]) 
                    oldarea=["%s"%u.pk for u in emp.attarea.select_related()]
                    
                    empchange=emp.__class__.empchange_set.related.model()
                    empchange.UserID=emp
                    empchange.changepostion=4
                    empchange.oldvalue=",".join(["%s"%i for i in  emp.attarea.select_related().values_list('pk')] )         
                    empchange.newvalue=",".join(area)
                    empchange.changedate=datetime.datetime.now()
                    empchange.save()
                    
                    emp.attarea=tuple(area)
                    emp.save()
                    #新增下载人员信息    
                      
                    #sync_set_user(emp.search_device_byuser(), [emp]) 
                    
                    datalist.append(adj_user_cmmdata(emp,Area.objects.filter(pk__in=oldarea),emp.attarea.all(),True))
                    
                    
               save_userarea_together(Employee.objects.filter(pk__in=emps),Area.objects.filter(pk__in=area),datalist)
Example #3
0
                def action_batch(self, area):
                        from mysite.iclock.models.model_cmmdata import adj_user_cmmdata, save_userarea_together
                        datalist = []
                        for oldObj in self.object:
                            empchange = oldObj.__class__.empchange_set.related.model()
                            empchange.changepostion = 4
                            empchange.newvalue = ",".join(["%s" % i.pk for i in  area])
                            empchange.changedate = datetime.datetime.now()
                            new_devs = None
                            import copy

                            old_attarea = copy.deepcopy(oldObj.attarea.select_related())
                            devs = set(list(Device.objects.filter(area__in=old_attarea).filter(device_type=DEVICE_TIME_RECORDER)))    #只管理考勤
                            empchange.oldvalue = ",".join(["%s" % i.pk for i in old_attarea])
                            empchange.UserID = oldObj
                            empchange.changeno = None
                            empchange.save()
                            oldObj.attarea = area
                            oldObj.save(log_msg=False)
                            if new_devs is None:
                                new_devs = set(list(oldObj.search_device_byuser()))
                            datalist.append(adj_user_cmmdata([oldObj], old_attarea, area, True))
                        save_userarea_together(self.object, area, datalist)