task.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # -*- coding: utf-8 -*-
  2. """
  3. walle-web
  4. :copyright: © 2015-2017 walle-web.io
  5. :created time: 2017-03-19 15:50:07
  6. :author: wushuiyong@walle-web.io
  7. """
  8. try:
  9. from flask_wtf import FlaskForm # Try Flask-WTF v0.13+
  10. except ImportError:
  11. from flask_wtf import Form as FlaskForm # Fallback to Flask-WTF v0.12 or older
  12. from flask_login import current_user
  13. from walle.model.project import ProjectModel
  14. from walle.model.task import TaskModel
  15. from wtforms import IntegerField, StringField
  16. from wtforms import validators
  17. from datetime import datetime
  18. class TaskForm(FlaskForm):
  19. name = StringField('name', [validators.Length(min=1)])
  20. project_id = IntegerField('project_id', [validators.NumberRange(min=1)])
  21. servers = StringField('servers', [validators.Length(min=1)])
  22. commit_id = StringField('commit_id', [])
  23. status = IntegerField('status', [])
  24. # TODO 应该增加一个tag/branch其一必填
  25. tag = StringField('tag', [])
  26. branch = StringField('branch', [])
  27. file_transmission_mode = IntegerField('file_transmission_mode', [])
  28. file_list = StringField('file_list', [])
  29. id = None
  30. def set_id(self, id):
  31. self.id = id
  32. def form2dict(self):
  33. project_info = ProjectModel(id=self.project_id.data).item()
  34. task_status = TaskModel.status_new if project_info[
  35. 'task_audit'] == ProjectModel.task_audit_true else TaskModel.status_pass
  36. return {
  37. 'name': self.name.data.replace('"', '').replace("'", ''),
  38. 'user_id': current_user.id,
  39. 'user_name': current_user.username,
  40. 'project_id': self.project_id.data,
  41. # todo default value
  42. 'action': 0,
  43. 'status': task_status,
  44. 'link_id': '',
  45. 'ex_link_id': '',
  46. 'servers': self.servers.data if self.servers.data else '',
  47. 'commit_id': self.commit_id.data if self.commit_id.data else '',
  48. 'tag': self.tag.data if self.tag.data else '',
  49. 'branch': self.branch.data if self.branch.data else '',
  50. 'file_transmission_mode': self.file_transmission_mode.data if self.file_transmission_mode.data else 0,
  51. 'file_list': self.file_list.data if self.file_list.data else '',
  52. 'is_rollback': 0,
  53. 'created_at': datetime.now(),
  54. 'updated_at': datetime.now(),
  55. }