def activityapply(activity_id): """Page: activity detail""" activity = Activity.query.get_or_404(activity_id) if activity.status == 1 and (not Duty.query.filter(Duty.uid == session['uid'], Duty.aid == activity_id).count()): content = request.form['content'] if not content: flash({'type': 'error', 'content': '请填写申请理由。'}) else: newduty = Duty(aid=activity_id, uid=session['uid'], status=1, process='', log='') newduty.appendprocesse('apply_duty', content) db.session.add(newduty) db.session.commit() flash({'type': 'success', 'content': '值班申请提交成功,等待排版班长审核。'}) else: flash({'type': 'danger', 'content': '非法操作,请重试。'}) return redirect(url_for('activitydetail', activity_id=activity_id))
def activityappoint(activity_id, member_uid): activity = Activity.query.get_or_404(activity_id) if activity.status == 1 and session.get('is_arra_monitor'): member = Member.query.get(member_uid) if not Duty.query.filter(Duty.aid == activity_id, Duty.uid == member_uid).count(): duty = Duty() duty.aid = activity_id duty.uid = member_uid duty.status = 4 duty.log = '' duty.appendprocesse('activity_appoint', '排班班长安排值班') db.session.add(duty) db.session.commit() # need or not timestr = timeformat_filter(activity.start_time, "%Y-%m-%d %H:%M") worktimestr = timeformat_filter(activity.work_start_time, "%Y-%m-%d %H:%M") venue = venuename_filter(activity.venue) title = activity.title remark = activity.remark url = config.BASE_URL + url_for('activitydetail', activity_id=activity.id) subject = mail.activity_appoint_tmpl['subject'] content = mail.activity_appoint_tmpl['content'] % (worktimestr, timestr, venue, title, remark, url, url) msg_id = mail.send_message(member_uid, session['uid'], subject, content, 2) mail.send_mail(subject, content, member.name, member.email, msgid=msg_id, touid=duty.uid, uid=duty.uid, dutyid=duty.id, activityid=duty.aid) else: flash({'type': 'danger', 'content': '此人已经安排过值班任务。'}) else: flash({'type': 'danger', 'content': '非法操作,请重试。'}) return redirect(url_for('activitydetail', activity_id=activity_id))
def activityopeartion(opeartion, duty_id): duty = Duty.query.get_or_404(duty_id) if duty.activity.status == 1 and (not Duty.query.filter(Duty.id != duty_id, Duty.uid == session['uid'], Duty.aid == duty.aid).count()) and \ ((session['uid'] == duty.member.uid and opeartion in CONST.duty_status_opeartion_selfuser_mapper[duty.status]) or (session['uid'] != duty.member.uid and opeartion in CONST.duty_status_opeartion_otheruser_mapper[duty.status]) or (session.get('is_arra_monitor') and opeartion in CONST.duty_status_opeartion_monitor_mapper[duty.status])): #print Article.query.filter(Article.title==article_title).statement if request.method == 'POST': reason = request.form['content'] else: reason = '' if CONST.dutyoperationname[opeartion].has_key('require_input') and not reason: flash({'type': 'error', 'content': '请填写申请理由。'}) return redirect(url_for('activitydetail', activity_id=duty.aid)) if opeartion == 'cover_duty': if Duty.query.filter(Duty.uid == session['uid'], Duty.aid == duty.aid).count(): flash({'type': 'danger', 'content': '你在本时间段已经有此活动,请勿重复选班。'}) return redirect(url_for('activitydetail', activity_id=duty.aid)) else: worktimestr = timeformat_filter(duty.activity.work_start_time, "%Y-%m-%d %H:%M") timestr = timeformat_filter(duty.activity.start_time, "%Y-%m-%d %H:%M") venue = venuename_filter(duty.activity.venue) title = duty.activity.title remark = duty.activity.remark url = config.BASE_URL + url_for('activitydetail', activity_id=duty.activity.id) member_url = config.BASE_URL + url_for('memberdetail', member_uid=session['uid']) member_name = session['name'] subject = mail.cover_duty_tmpl['subject'] content = mail.cover_duty_tmpl['content'] % (member_url, member_name, worktimestr, timestr, venue, title, remark, url, url) msg_id = mail.send_message(duty.uid, session['uid'], subject, content, 2) mail.send_mail(subject, content, duty.member.name, duty.member.email, msgid=msg_id, touid=duty.uid, uid=duty.uid, dutyid=duty.id, activityid=duty.aid) new_duty = Duty(aid=duty.aid, uid=session['uid'], status=6, log='') new_duty.appendprocesse('cover_duty', '') db.session.add(new_duty) elif opeartion == 'approve_apply' or opeartion == 'decline_apply': worktimestr = timeformat_filter(duty.activity.work_start_time, "%Y-%m-%d %H:%M") timestr = timeformat_filter(duty.activity.start_time, "%Y-%m-%d %H:%M") venue = venuename_filter(duty.activity.venue) title = duty.activity.title remark = duty.activity.remark url = config.BASE_URL + url_for('activitydetail', activity_id=duty.activity.id) if opeartion == 'approve_apply': subject = mail.approve_apply_tmpl['subject'] content = mail.approve_apply_tmpl['content'] % (worktimestr, timestr, venue, title, remark, url, url) else: subject = mail.decline_apply_tmpl['subject'] content = mail.decline_apply_tmpl['content'] % (worktimestr, timestr, venue, title, remark, url, url) msg_id = mail.send_message(duty.uid, session['uid'], subject, content, 2) mail.send_mail(subject, content, duty.member.name, duty.member.email, msgid=msg_id, touid=duty.uid, uid=duty.uid, dutyid=duty.id, activityid=duty.aid) elif opeartion == 'decline_duty': uname = session['name'] worktimestr = timeformat_filter(duty.activity.work_start_time, "%Y-%m-%d %H:%M") timestr = timeformat_filter(duty.activity.start_time, "%Y-%m-%d %H:%M") venue = venuename_filter(duty.activity.venue) title = duty.activity.title remark = duty.activity.remark url = config.BASE_URL + url_for('activitydetail', activity_id=duty.activity.id) subject = mail.decline_duty_tmpl['subject'] content = mail.decline_duty_tmpl['content'] % (uname, reason, worktimestr, timestr, venue, title, remark, url, url) for uid in config.ARRA_MONITOR: member = Member.query.get(uid) msg_id = mail.send_message(uid, session['uid'], subject, content, 2) mail.send_mail(subject, content, member.name, member.email, msgid=msg_id, touid=uid, uid=duty.uid, dutyid=duty.id, activityid=duty.aid) elif opeartion == 'cancle_task': pass#timestr = timeformat_filter(duty.activity.start_time,"%Y-%m-%d %H:%M") #venue = venuename_filter(duty.activity.venue) #title = duty.activity.title #remark = duty.activity.remark #url = config.BASE_URL + url_for('activitydetail',activity_id=duty.activity.id) #subject = mail.approve_apply_tmpl['subject'] #content = mail.approve_apply_tmpl['content'] % ( timestr, venue, title, remark, url , url ) #msg_id = mail.send_message(duty.uid,session['uid'],subject,content,2) #mail.send_mail(subject, content, duty.member.name, duty.member.email, msg_id) duty.status = CONST.duty_status_opeartion_next[opeartion] duty.appendprocesse(opeartion, reason) db.session.add(duty) db.session.commit() flash({'type': 'success', 'content': '操作成功!'}) else: flash({'type': 'danger', 'content': '非法操作,请重试。'}) return redirect(url_for('activitydetail', activity_id=duty.aid))