models.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import datetime
  2. from django.db import models
  3. from utils.util_add_id import gen_next_id
  4. from utils.util_create_file import create_version_file
  5. # Create your models here.
  6. class Software(models.Model):
  7. name = models.CharField(max_length=128, verbose_name='被测试软件名')
  8. id = models.CharField(max_length=128, unique=True, primary_key=True, verbose_name='被测试软件编号',
  9. default='TestLaboratory_V1_Software_1')
  10. type = models.CharField(max_length=20, verbose_name='被测试软件类型')
  11. creator_id = models.CharField(max_length=128, verbose_name='创建者id')
  12. report_file = models.TextField(null=True, verbose_name='测试报告id文件')
  13. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  14. update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
  15. delete = models.BooleanField(default=False)
  16. def __str__(self):
  17. return self.name
  18. class Meta:
  19. verbose_name = '被测试软件'
  20. verbose_name_plural = verbose_name
  21. db_table = 'software'
  22. class Version(models.Model):
  23. id = models.CharField(max_length=128, unique=True, primary_key=True, verbose_name='软件版本',
  24. default='TestLaboratory_V1_Version_1')
  25. number = models.CharField(max_length=20, verbose_name='版本号')
  26. software = models.ForeignKey(Software, on_delete=models.CASCADE, verbose_name='所属软件')
  27. version_file = models.TextField(verbose_name='软件路径id文件')
  28. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  29. update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
  30. delete = models.BooleanField(default=False)
  31. def __str__(self):
  32. return self.software.name + " " + self.number
  33. class Meta:
  34. verbose_name = '软件版本'
  35. verbose_name_plural = verbose_name
  36. db_table = 'version'
  37. def create_software(name, software_type, version_num, file):
  38. # duplicated
  39. # # step1:判断软件是否已存在
  40. # if Software.objects.filter(name=name):
  41. # return {'code': 500, 'msg': '被测试软件已存在,请修改软件名重新上传'}
  42. # step2:创建id和时间
  43. pass
  44. def get_software(name, software_type, sort):
  45. pass
  46. def create_version(software_id, version_num, file):
  47. # # step1:判断版本所属软件是否存在
  48. # software = Software.objects.filter(id=software_id, delete=False)
  49. # if not software:
  50. # return {'code': 500, 'msg': '被测软件不存在,请检查是否未创建或已删除'}
  51. # software = software[0]
  52. #
  53. # # step2:判断版本是否存在
  54. # software_version = software.version_set.filter(num=version_num, delete=False)
  55. # if software_version:
  56. # return {'code': 500, 'msg': '软件版本已存在,请修改版本号后重新上传'}
  57. #
  58. # # step3:上传版本软件实体到指定路径,返回文件路径
  59. # create_info = create_version_file(file, software.name, version_num)
  60. # if create_info['code'] != 200:
  61. # return create_info
  62. # file_path = create_info['file_path']
  63. #
  64. # # step4:创建版本id
  65. # id_version = None
  66. # if not Version.objects.order_by('create_time').last():
  67. # id_version = "Version_1"
  68. # else:
  69. # id_version = gen_next_id(Version.objects.order_by('create_time').last().id)
  70. #
  71. # # step5:设置创建时间和修改时间
  72. # create_time = update_time = datetime.datetime.now()
  73. #
  74. # # step6:数据库新增字段
  75. # version = Version.objects.create(id=id_version, num=version_num, software=software, create_time=create_time,
  76. # update_time=update_time, file=file_path)
  77. # return {'code': 200, 'msg': '新版本创建成功'}
  78. pass