Example #1
0
 def get(self, *args, **kwargs):
     tid = kwargs.get('tid')
     mode = kwargs.get('mode')
     if not tid:
         raise HTTPError(404)
     p_users = Auth.find_project_users(pid=self.pid)
     self.p_users = [{'id': auth.user_id, 'name': auth.user_name} for auth in p_users]
     self.json_p_users = json.dumps(self.p_users)
     task = Task.get(id=tid)
     if not mode:  # 任务详细信息
         # get comment
         task_comments = Comment.find(task_id=task.id, order_by='created')
         # get change log
         task_logs = TaskLog.find(task_id=task.id, order_by='created desc')
         # focus
         focus = TaskFocus.check_focus(task_id=task.id, user_id=self.user.id)
         return self.render('task.html',
                            task=task,
                            auth=self.auth,
                            logs=task_logs,
                            comments=task_comments,
                            focus=focus)
     if mode == 'solve':  # 标记解决任务
         if not task.is_done:
             task.status = Task._status_solved
             task.save()
             TaskLog.new(
                 task_id=task.id,
                 desc=json.dumps([]),
                 note=u'标记为解决',
                 updater_id=self.user.id,
                 updater_name=self.user.name,
             )
         return self.redirect('/%s/%s/%s' % (self.pid, 'task', task.id))
     if mode == 'edit':  # 编辑任务
         # 用户列表去除已经分配的用户
         users = [u for u in self.p_users if u['id'] not in task.assigned_ids]
         json_p_users = json.dumps(users)
         task_data = task.dictify()
         task_data['assigneds'] = json.dumps(task.assigned_users)
         return self.render(
             'task-new.html',
             task=task_data,
             auth=self.auth,
             json_users=json_p_users,
             statuses=self.statuses,
             types=self.types,
             priorities=self.priorities,
             errors={},
             update=True)
     if mode == 'focus':  # 关注任务
         TaskFocus.focus(
             task=task,
             user=self.user,
             pid=self.pid,
             pname=self.auth.project_name,
         )
         return self.redirect('/%s/%s/%s' % (self.pid, 'task', task.id))
Example #2
0
 def post(self, *args, **kwargs):
     tid = kwargs.get('tid')
     if not tid:
         raise HTTPError(404)
     task = Task.get(id=tid)
     form = CommentForm(self.request.arguments)
     # set form data
     form.from_user_id.data = self.user.id
     form.from_user_name.data = self.user.name
     form.to_user_id.data = task.creator_id
     form.to_user_name.data = task.creator_name
     form.task_id.data = task.id
     form.task_title.data = task.title
     # 分析content 识别链接, 识别@
     # 链接 <a>url</a>
     content, at_users = analyse_content(form.content.data)
     print '****************content: ', repr(content)
     form.type.data = Comment._type_at if at_users else Comment._type_reply
     form.content.data = content
     if form.validate():
         comment = Comment.new(**form.data)
         # 评论消息 自己回复自己或者自己@自己不发消息
         if int(self.user.id) != int(task.creator_id):
             Message.set(
                 user_id=task.creator_id,
                 from_user=self.user,
                 task=task,
                 pid=self.pid,
                 pname=self.auth.project_name,
                 type='apply',
                 content=content,
             )
         # @消息
         for name in at_users:
             user = User.get(name=name, status=User._status_ok)
             if user and user.id != int(self.user.id):
                 Message.set(
                     user_id=user.id,
                     from_user=self.user,
                     task=task,
                     pid=self.pid,
                     pname=self.auth.project_name,
                     type='@',
                     content=content,
                 )
         return self.redirect('/%s/task/%s' % (self.pid, task.id))
     else:
         return self.render('comment.html',
                            errors=form.errors,
                            auth=self.auth,
                            task=task)
Example #3
0
 def post(self, *args, **kwargs):
     tid = kwargs.get('tid')
     if not tid:
         raise HTTPError(404)
     task = Task.get(id=tid)
     form = CommentForm(self.request.arguments)
     # set form data
     form.from_user_id.data = self.user.id
     form.from_user_name.data = self.user.name
     form.to_user_id.data = task.creator_id
     form.to_user_name.data = task.creator_name
     form.task_id.data = task.id
     form.task_title.data = task.title
     # 分析content 识别链接, 识别@
     # 链接 <a>url</a>
     content, at_users = analyse_content(form.content.data)
     print '****************content: ', repr(content)
     form.type.data = Comment._type_at if at_users else Comment._type_reply
     form.content.data = content
     if form.validate():
         comment = Comment.new(**form.data)
         # 评论消息 自己回复自己或者自己@自己不发消息
         if int(self.user.id) != int(task.creator_id):
             Message.set(
                 user_id=task.creator_id,
                 from_user=self.user,
                 task=task,
                 pid=self.pid,
                 pname=self.auth.project_name,
                 type='apply',
                 content=content,
             )
         # @消息
         for name in at_users:
             user = User.get(name=name, status=User._status_ok)
             if user and user.id != int(self.user.id):
                 Message.set(
                     user_id=user.id,
                     from_user=self.user,
                     task=task,
                     pid=self.pid,
                     pname=self.auth.project_name,
                     type='@',
                     content=content,
                 )
         return self.redirect('/%s/task/%s' % (self.pid, task.id))
     else:
         return self.render('comment.html', errors=form.errors, auth=self.auth, task=task)
Example #4
0
 def get(self, *args, **kwargs):
     tid = kwargs.get('tid')
     mode = kwargs.get('mode')
     if not tid:
         raise HTTPError(404)
     p_users = Auth.find_project_users(pid=self.pid)
     self.p_users = [{
         'id': auth.user_id,
         'name': auth.user_name
     } for auth in p_users]
     self.json_p_users = json.dumps(self.p_users)
     task = Task.get(id=tid)
     if not mode:  # 任务详细信息
         # get comment
         task_comments = Comment.find(task_id=task.id, order_by='created')
         # get change log
         task_logs = TaskLog.find(task_id=task.id, order_by='created desc')
         # focus
         focus = TaskFocus.check_focus(task_id=task.id,
                                       user_id=self.user.id)
         return self.render('task.html',
                            task=task,
                            auth=self.auth,
                            logs=task_logs,
                            comments=task_comments,
                            focus=focus)
     if mode == 'solve':  # 标记解决任务
         if not task.is_done:
             task.status = Task._status_solved
             task.save()
             TaskLog.new(
                 task_id=task.id,
                 desc=json.dumps([]),
                 note=u'标记为解决',
                 updater_id=self.user.id,
                 updater_name=self.user.name,
             )
         return self.redirect('/%s/%s/%s' % (self.pid, 'task', task.id))
     if mode == 'edit':  # 编辑任务
         # 用户列表去除已经分配的用户
         users = [
             u for u in self.p_users if u['id'] not in task.assigned_ids
         ]
         json_p_users = json.dumps(users)
         task_data = task.dictify()
         task_data['assigneds'] = json.dumps(task.assigned_users)
         return self.render('task-new.html',
                            task=task_data,
                            auth=self.auth,
                            json_users=json_p_users,
                            statuses=self.statuses,
                            types=self.types,
                            priorities=self.priorities,
                            errors={},
                            update=True)
     if mode == 'focus':  # 关注任务
         TaskFocus.focus(
             task=task,
             user=self.user,
             pid=self.pid,
             pname=self.auth.project_name,
         )
         return self.redirect('/%s/%s/%s' % (self.pid, 'task', task.id))