mission.py 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. from django.db import models
  2. import os, errno
  3. from api.utils import *
  4. state = [
  5. ('init', 'init'),
  6. ('calculating', 'calculating'),
  7. ('pause', 'pause'),
  8. ('stop', 'stop'),
  9. ('done', 'done'),
  10. ]
  11. class MissionManager(models.Manager):
  12. def statistic(self, user):
  13. missions = user.own_missions.all()
  14. return {
  15. 'amount': len(missions),
  16. }
  17. class Mission(models.Model):
  18. name = models.CharField(default="未命名任务", max_length=64)
  19. create_time = models.DateTimeField(auto_now_add=True)
  20. update_time = models.DateTimeField(auto_now=True)
  21. nodeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_missions_node")
  22. edgeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_missions_edge")
  23. user = models.ForeignKey(to="api.User", on_delete=models.CASCADE, related_name="own_missions")
  24. objects = MissionManager()
  25. state = models.CharField(choices=state, default="init", max_length=32)
  26. class Meta:
  27. app_label = 'api'