def eventDelete(request, id): ''' 删除事件 ''' hk = request.session.get('hk') try: ev = EventModel.objects.get(pk = id) tg = TriggerPsgModel(ev, hk) tg.off() except EventModel.DoesNotExist, e: return MyHttpJsonResponse({'succ': False, 'msg': 'xx'})
def eventModify(request, ev_id): ''' 修改事件 ''' content = json.loads(request.POST.get('data')) hk = request.session.get('hk') try: ev = EventModel.objects.get(pk = ev_id) if ev.m_creator != request.user: return MyHttpJsonResponse({'succ': False}) pair = makeEventKwargs(content) ev.update(**pair) tg = TriggerPsgModel(ev) tg.modify() except Exception, e: logExcInfo() return MyHttpJsonResponse({'succ': False})
def eventCreate(request): ''' 新建事件 ''' content = json.loads(request.POST.get('data')) hk = request.session.get('hk') user = request.user try: # 保存事件记录 # 先保存主要是为了获得pk,从而在触发器实现中,方便保存外键关系 pair = makeEventKwargs(content) conn = ExternalDbModel.objects.get(pk = hk) kwargs = dict(pair, m_creator = user, m_conn_db = conn) ev = EventModel.objects.create(**kwargs) # 用触发器机制实现监控机制 tg = TriggerPsgModel(ev, hk) tg.on() except Exception, e: logExcInfo() # 实现失败,删除该事件 EventModel.objects.filter(pk = ev.pk).delete() #事件上要区分,不是所有事件都要删 return MyHttpJsonResponse({'succ': False})