space.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 walle.model.space import SpaceModel
  13. from wtforms import StringField
  14. from wtforms import validators, ValidationError
  15. class SpaceForm(FlaskForm):
  16. name = StringField('name', [validators.Length(min=1, max=100)])
  17. user_id = StringField('user_id', [validators.Length(min=1, max=100)])
  18. status = StringField('status', [])
  19. id = None
  20. def set_id(self, id):
  21. self.id = id
  22. def validate_name(self, field):
  23. filters = {
  24. SpaceModel.status.notin_([SpaceModel.status_remove]),
  25. SpaceModel.name == field.data
  26. }
  27. space = SpaceModel.query.filter(*filters).first()
  28. # 新建时,环境名不可与
  29. if space and space.id != self.id:
  30. raise ValidationError('该Space已重名')
  31. def form2dict(self):
  32. return {
  33. 'name': self.name.data if self.name.data else '',
  34. 'user_id': self.user_id.data if self.user_id.data else '',
  35. 'status': 1,
  36. }