task.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. class TaskForm(FlaskForm):
  18. name = StringField('name', [validators.Length(min=1)])
  19. project_id = IntegerField('project_id', [validators.NumberRange(min=1)])
  20. servers = StringField('servers', [validators.Length(min=1)])
  21. commit_id = StringField('commit_id', [])
  22. status = IntegerField('status', [])
  23. # TODO 应该增加一个tag/branch其一必填
  24. tag = StringField('tag', [])
  25. branch = StringField('branch', [])
  26. file_transmission_mode = IntegerField('file_transmission_mode', [])
  27. file_list = StringField('file_list', [])
  28. id = None
  29. def set_id(self, id):
  30. self.id = id
  31. def form2dict(self):
  32. project_info = ProjectModel(id=self.project_id.data).item()
  33. task_status = TaskModel.status_new if project_info[
  34. 'task_audit'] == ProjectModel.task_audit_true else TaskModel.status_pass
  35. return {
  36. 'name': self.name.data if self.name.data else '',
  37. 'user_id': current_user.id,
  38. 'user_name': current_user.username,
  39. 'project_id': self.project_id.data,
  40. # todo default value
  41. 'action': 0,
  42. 'status': task_status,
  43. 'link_id': '',
  44. 'ex_link_id': '',
  45. 'servers': self.servers.data if self.servers.data else '',
  46. 'commit_id': self.commit_id.data if self.commit_id.data else '',
  47. 'tag': self.tag.data if self.tag.data else '',
  48. 'branch': self.branch.data if self.branch.data else '',
  49. 'file_transmission_mode': self.file_transmission_mode.data if self.file_transmission_mode.data else 0,
  50. 'file_list': self.file_list.data if self.file_list.data else '',
  51. 'is_rollback': 0,
  52. }