def createOrganization(request, person=None): ''' 创建组织(组织、根部门、未分组部门、员工信息) ''' if not person: person = Person() person.user = request.user person.name = request.user.name orgform = OrganizationForm(request.POST) if not orgform.is_valid(): return getErrorFormResult(orgform) org = orgform.save() person.org = org person.save() org.managers.add(person) department = Department() department.name = org.name department.flag = 'root' department.icon = org.icon department.org = org department.save() department.managers.add(person) free_depart = Department() free_depart.name = u'未分组' free_depart.flag = 'free' free_depart.icon = org.icon free_depart.org = org free_depart.father = department free_depart.save()
def updateDepartment(request): pk = request.POST.get('id') if pk: dfrom = DepartmentForm(request.POST, instance=Department.objects.get(pk=pk)) else: dfrom = DepartmentForm(request.POST) if not dfrom.is_valid(): return getErrorFormResult(dfrom) depart = dfrom.save() cache.delete('alldepart_%s' % get_current_org().pk) d = MyEncoder.default(depart) d['managers'] = MyEncoder.default(depart.managers) d['members'] = MyEncoder.default(depart.members) return getResult(True, u'保存部门信息成功', d)
def create_gysaddress_by_group(request, project_id=None): """ 创建一个供应商名录 by:王健 at:2015-1-14 增加积分 by:王健 at:2015-2-5 修改权限校验 函数 by:王健 at:2015-3-5 增加修改时判断是否是当前用户创建的逻辑 by:尚宗凯 at:2015-3-26 增加极光推送 by:尚宗凯 at:2015-4-8 极光推送别名 by:尚宗凯 at:2015-4-13 极光推送IOS增加字段 by:尚宗凯 at:2015-4-23 提交日志时刷新阅读时间 by:尚宗凯 at:2015-05-06 增加最新数据时间缓存 by:尚宗凯 at:2015-05-20 修复小红点bug by:尚宗凯 at:2015-05-27 增加项目状态为 0 装饰器 by:尚宗凯 at:2015-05-31 变更极光推送方法 by:尚宗凯 at:2015-05-31 添加用户活跃度缓存 by:尚宗凯 at:2015-06-04 """ flag = request.REQUEST.get('flag') id = request.REQUEST.get('id') if id: ghsform = GYSAddressForm(request.POST, instance=GYSAddress.objects.get(pk=id)) if ghsform.instance.user.pk != request.user.pk: return getResult(False, u'不是您发布的数据,不能修改', status_code=2) else: ghsform = GYSAddressForm(request.POST) if not ghsform.is_valid(): return getErrorFormResult(ghsform) ghsform.instance.project_id = int(project_id) ghsform.instance.file_group = get_object_or_404(FileGroup, flag=flag) ghsform.instance.user = request.user gys = ghsform.save() # if flag: # alias = list(set(get_alias_by_project_id_flag(project_id, flag))) # NeedPush.send_jpush(flag=flag, # project_id=project_id, # title=Project.get_project_name_by_id(project_id), # msg=FileGroup.objects.get(flag=flag).name, # alias=alias, # file_group=FileGroup.objects.get(flag=flag).toJSON() # ) from util.cache_handle import query_project_filegroup_data_ all_flag = query_project_filegroup_data_(project_id) file_group_id = all_flag['flags2'][flag] alias = get_alias_by_project_id_flag(project_id, flag, file_group_id) alias = list(set(alias)) NeedPush.send_jpush(flag=flag, project_id=project_id, title=Project.get_project_name_by_id(project_id), msg=all_flag['file_group'][file_group_id]['name'], alias=alias, file_group=all_flag['file_group'][file_group_id] ) # UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=request.user.pk) #更新项目应用节点最新数据时间 user_id = request.user.pk cache.set(RED_DOT_PROJECT_FILE_GROUP_LAST_NEW_DATA_TIMELINE % (project_id, ghsform.instance.file_group_id), gys.timeline, settings.CACHES_TIMEOUT) cache.set(RED_DOT_PROJECT_LAST_NEW_DATA_TIMELINE % project_id, gys.timeline, settings.CACHES_TIMEOUT) cache.delete(USER_ACTIVITY % (user_id, project_id, ghsform.instance.create_time.strftime('%Y-%m-%d'))) # cache.delete(RED_DOT_USER_LAST_READ_TIMELINE % (project_id, ghsform.instance.file_group_id, user_id)) UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=user_id) UserLastReadTimeline.update_last_read_timeline(project_id, 0, user_id) return getResult(True, u'创建供应商名录成功', MyEncoder.default(gys), jifen=create_data_jifen(request, CREATE_DATA))
def create_wuzirecord_by_group(request, project_id=None): """ 创建一个物资记录 by:王健 at:2015-1-14 num bug修复 by:王健 at:2015-2-3 增加积分 by:王健 at:2015-2-5 优化物资记录 增加方法 by:王健 at:2015-2-10 修改权限校验 函数 by:王健 at:2015-3-5 增加采购出库入库修改记录 by:尚宗凯 at:2015-3-26 添加极光推送 by:尚宗凯 at:2015-4-8 极光推送别名 by:尚宗凯 at:2015-4-13 极光推送IOS增加字段 by:尚宗凯 at:2015-4-23 提交日志时刷新阅读时间 by:尚宗凯 at:2015-05-06 优化查询 by:尚宗凯 at:2015-05-20 增加项目状态为 0 装饰器 by:尚宗凯 at:2015-05-31 添加用户活跃度缓存 by:尚宗凯 at:2015-06-04 """ flag = request.REQUEST.get('flag') id = request.REQUEST.get('id') create = False if id: ghsform = WuZiRecordForm(request.POST, instance=WuZiRecord.objects.get(pk=id)) record = ghsform.instance.record_date if ghsform.instance.user.pk != request.user.pk: return getResult(False, u'不是您发布的数据,不能修改', status_code=2) now = datetime.datetime.now().date() if record.date + datetime.timedelta(days=1) < now: return getResult(False, u'已超过24小时,不能修改', status_code=2) else: ghsform = WuZiRecordForm(request.POST) record, create = RecordDate.objects.get_or_create(project_id=project_id, file_group=FileGroup.objects.get(flag=flag), date=timezone.now()) ghsform.instance.record_date = record record.num += 1 record.last_create_user = request.user if not ghsform.is_valid(): if create: record.delete() return getErrorFormResult(ghsform) ghsform.instance.project_id = int(project_id) ghsform.instance.file_group = get_object_or_404(FileGroup, flag=flag) ghsform.instance.user = request.user gys = ghsform.save() record.save() result = MyEncoder.default(record) result.update(MyEncoder.default(gys)) # if flag: # alias = list(set(get_alias_by_project_id_flag(project_id, flag))) # NeedPush.send_jpush(flag=flag, # project_id=project_id, # title=Project.get_project_name_by_id(project_id), # msg=FileGroup.objects.get(flag=flag).name, # alias=alias, # file_group=FileGroup.objects.get(flag=flag).toJSON() # ) from util.cache_handle import query_project_filegroup_data_ all_flag = query_project_filegroup_data_(project_id) file_group_id = all_flag['flags2'][flag] alias = get_alias_by_project_id_flag(project_id, flag, file_group_id) alias = list(set(alias)) NeedPush.send_jpush(flag=flag, project_id=project_id, title=Project.get_project_name_by_id(project_id), msg=all_flag['file_group'][file_group_id]['name'], alias=alias, file_group=all_flag['file_group'][file_group_id] ) # UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=request.user.pk) #更新项目应用节点最新数据时间 user_id = request.user.pk cache.set(RED_DOT_PROJECT_FILE_GROUP_LAST_NEW_DATA_TIMELINE % (project_id, ghsform.instance.file_group_id), record.timeline, settings.CACHES_TIMEOUT) cache.set(RED_DOT_PROJECT_LAST_NEW_DATA_TIMELINE % project_id, record.timeline, settings.CACHES_TIMEOUT) cache.delete(USER_ACTIVITY % (user_id, project_id, ghsform.instance.create_time.strftime('%Y-%m-%d'))) # cache.delete(RED_DOT_USER_LAST_READ_TIMELINE % (project_id, ghsform.instance.file_group_id, user_id)) UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=user_id) UserLastReadTimeline.update_last_read_timeline(project_id, 0, user_id) return getResult(True, u'创建物资记录成功', result, jifen=create_data_jifen(request, CREATE_DATA))
def update_userinfo(request): """ 修改个人信息 by:王健 at:2015-1-3 修改个人相关的信息,新增加了UserInfo表 by:王健 at:2015-1-18 修复只传递一个参数时,把其他参数覆盖为空的bug by:王健 at:2015-1-19 修改个人信息返回值 by:王健 at:2015-1-20 user 修改过后都更新person的timeline by:王健 at:2015-1-25 user 修改导致的 person更新,插入到 user的save方法中 by:王健 at:2015-1-28 添加 nickname的修改 by:王健 at:2015-3-2 优化个人信息更新和获取 by:王健 at:2015-3-9 解决 缓存不一致问题 by:王健 at:2015-3-10 解决缩进错误 by:尚宗凯 at:2015-3-26 学历为空做特殊处理 by:尚宗凯 at:2015-05-13 项目的超级管理员名字改变,项目的信息也会变,项目的时间戳更新 by:王健 at:2015-05-21 is None 判断错误 by:王健 at:2015-05-21 增加realname设置 by:尚宗凯 at:2015-06-26 """ user = request.user user_flag = False if request.REQUEST.has_key('name'): user.name = request.REQUEST.get('name') for p in Project.objects.filter(manager_id=user.pk): p.updatetimeline() user_flag = True if request.REQUEST.has_key('nickname'): user.nickname = request.REQUEST.get('nickname') user_flag = True if request.REQUEST.has_key('realname'): user.realname = request.REQUEST.get('realname') user_flag = True if request.REQUEST.has_key('sex'): if request.REQUEST.get('sex') == 'true': user.sex = True else: user.sex = False user_flag = True if user_flag: user.save() userinfo_flag = False if hasattr(user, 'userinfo') and user.userinfo: userinfo = user.userinfo post = {} for att in USERINFOATTR: if request.REQUEST.has_key(att): # setattr(userinfo,att, request.REQUEST.get(att)) userinfo_flag = True post[att] = request.REQUEST.get(att) else: # setattr(request.POST, att, getattr(userinfo, att)) if att == "xueli": post[att] = None else: post[att] = getattr(userinfo, att) userinfoform = UserInfoForm(post, instance=user.userinfo) else: userinfo_flag = True userinfoform = UserInfoForm(request.POST) if userinfo_flag: if not userinfoform.is_valid(): return getErrorFormResult(userinfoform) userinfoform.instance.user = user userinfo = userinfoform.save() userinfo.save() if not user_flag and not userinfo_flag: u = cache.get(USERINFO_INFO % user.pk) else: u = None cache.delete(USERINFO_INFO % user.pk) if u is None: u = MyEncoder.default(userinfo) u.update(user.get_user_map(True)) cache.set(USERINFO_INFO % user.pk, u, settings.CACHES_TIMEOUT) return getResult(True, u'修改个人信息成功', u)
def create_gysaddress_by_group(request, project_id=None): """ 创建一个供应商名录 by:王健 at:2015-1-14 增加积分 by:王健 at:2015-2-5 修改权限校验 函数 by:王健 at:2015-3-5 增加修改时判断是否是当前用户创建的逻辑 by:尚宗凯 at:2015-3-26 增加极光推送 by:尚宗凯 at:2015-4-8 极光推送别名 by:尚宗凯 at:2015-4-13 极光推送IOS增加字段 by:尚宗凯 at:2015-4-23 提交日志时刷新阅读时间 by:尚宗凯 at:2015-05-06 增加最新数据时间缓存 by:尚宗凯 at:2015-05-20 修复小红点bug by:尚宗凯 at:2015-05-27 增加项目状态为 0 装饰器 by:尚宗凯 at:2015-05-31 变更极光推送方法 by:尚宗凯 at:2015-05-31 添加用户活跃度缓存 by:尚宗凯 at:2015-06-04 """ flag = request.REQUEST.get('flag') id = request.REQUEST.get('id') if id: ghsform = GYSAddressForm(request.POST, instance=GYSAddress.objects.get(pk=id)) if ghsform.instance.user.pk != request.user.pk: return getResult(False, u'不是您发布的数据,不能修改', status_code=2) else: ghsform = GYSAddressForm(request.POST) if not ghsform.is_valid(): return getErrorFormResult(ghsform) ghsform.instance.project_id = int(project_id) ghsform.instance.file_group = get_object_or_404(FileGroup, flag=flag) ghsform.instance.user = request.user gys = ghsform.save() # if flag: # alias = list(set(get_alias_by_project_id_flag(project_id, flag))) # NeedPush.send_jpush(flag=flag, # project_id=project_id, # title=Project.get_project_name_by_id(project_id), # msg=FileGroup.objects.get(flag=flag).name, # alias=alias, # file_group=FileGroup.objects.get(flag=flag).toJSON() # ) from util.cache_handle import query_project_filegroup_data_ all_flag = query_project_filegroup_data_(project_id) file_group_id = all_flag['flags2'][flag] alias = get_alias_by_project_id_flag(project_id, flag, file_group_id) alias = list(set(alias)) NeedPush.send_jpush(flag=flag, project_id=project_id, title=Project.get_project_name_by_id(project_id), msg=all_flag['file_group'][file_group_id]['name'], alias=alias, file_group=all_flag['file_group'][file_group_id]) # UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=request.user.pk) #更新项目应用节点最新数据时间 user_id = request.user.pk cache.set( RED_DOT_PROJECT_FILE_GROUP_LAST_NEW_DATA_TIMELINE % (project_id, ghsform.instance.file_group_id), gys.timeline, settings.CACHES_TIMEOUT) cache.set(RED_DOT_PROJECT_LAST_NEW_DATA_TIMELINE % project_id, gys.timeline, settings.CACHES_TIMEOUT) cache.delete(USER_ACTIVITY % (user_id, project_id, ghsform.instance.create_time.strftime('%Y-%m-%d'))) # cache.delete(RED_DOT_USER_LAST_READ_TIMELINE % (project_id, ghsform.instance.file_group_id, user_id)) UserLastReadTimeline.update_last_read_timeline( project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=user_id) UserLastReadTimeline.update_last_read_timeline(project_id, 0, user_id) return getResult(True, u'创建供应商名录成功', MyEncoder.default(gys), jifen=create_data_jifen(request, CREATE_DATA))
def create_wuzirecord_by_group(request, project_id=None): """ 创建一个物资记录 by:王健 at:2015-1-14 num bug修复 by:王健 at:2015-2-3 增加积分 by:王健 at:2015-2-5 优化物资记录 增加方法 by:王健 at:2015-2-10 修改权限校验 函数 by:王健 at:2015-3-5 增加采购出库入库修改记录 by:尚宗凯 at:2015-3-26 添加极光推送 by:尚宗凯 at:2015-4-8 极光推送别名 by:尚宗凯 at:2015-4-13 极光推送IOS增加字段 by:尚宗凯 at:2015-4-23 提交日志时刷新阅读时间 by:尚宗凯 at:2015-05-06 优化查询 by:尚宗凯 at:2015-05-20 增加项目状态为 0 装饰器 by:尚宗凯 at:2015-05-31 添加用户活跃度缓存 by:尚宗凯 at:2015-06-04 """ flag = request.REQUEST.get('flag') id = request.REQUEST.get('id') create = False if id: ghsform = WuZiRecordForm(request.POST, instance=WuZiRecord.objects.get(pk=id)) record = ghsform.instance.record_date if ghsform.instance.user.pk != request.user.pk: return getResult(False, u'不是您发布的数据,不能修改', status_code=2) now = datetime.datetime.now().date() if record.date + datetime.timedelta(days=1) < now: return getResult(False, u'已超过24小时,不能修改', status_code=2) else: ghsform = WuZiRecordForm(request.POST) record, create = RecordDate.objects.get_or_create( project_id=project_id, file_group=FileGroup.objects.get(flag=flag), date=timezone.now()) ghsform.instance.record_date = record record.num += 1 record.last_create_user = request.user if not ghsform.is_valid(): if create: record.delete() return getErrorFormResult(ghsform) ghsform.instance.project_id = int(project_id) ghsform.instance.file_group = get_object_or_404(FileGroup, flag=flag) ghsform.instance.user = request.user gys = ghsform.save() record.save() result = MyEncoder.default(record) result.update(MyEncoder.default(gys)) # if flag: # alias = list(set(get_alias_by_project_id_flag(project_id, flag))) # NeedPush.send_jpush(flag=flag, # project_id=project_id, # title=Project.get_project_name_by_id(project_id), # msg=FileGroup.objects.get(flag=flag).name, # alias=alias, # file_group=FileGroup.objects.get(flag=flag).toJSON() # ) from util.cache_handle import query_project_filegroup_data_ all_flag = query_project_filegroup_data_(project_id) file_group_id = all_flag['flags2'][flag] alias = get_alias_by_project_id_flag(project_id, flag, file_group_id) alias = list(set(alias)) NeedPush.send_jpush(flag=flag, project_id=project_id, title=Project.get_project_name_by_id(project_id), msg=all_flag['file_group'][file_group_id]['name'], alias=alias, file_group=all_flag['file_group'][file_group_id]) # UserLastReadTimeline.update_last_read_timeline(project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=request.user.pk) #更新项目应用节点最新数据时间 user_id = request.user.pk cache.set( RED_DOT_PROJECT_FILE_GROUP_LAST_NEW_DATA_TIMELINE % (project_id, ghsform.instance.file_group_id), record.timeline, settings.CACHES_TIMEOUT) cache.set(RED_DOT_PROJECT_LAST_NEW_DATA_TIMELINE % project_id, record.timeline, settings.CACHES_TIMEOUT) cache.delete(USER_ACTIVITY % (user_id, project_id, ghsform.instance.create_time.strftime('%Y-%m-%d'))) # cache.delete(RED_DOT_USER_LAST_READ_TIMELINE % (project_id, ghsform.instance.file_group_id, user_id)) UserLastReadTimeline.update_last_read_timeline( project_id=project_id, file_group_id=FileGroup.objects.get(flag=flag).pk, user_id=user_id) UserLastReadTimeline.update_last_read_timeline(project_id, 0, user_id) return getResult(True, u'创建物资记录成功', result, jifen=create_data_jifen(request, CREATE_DATA))