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)
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)
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)