mission.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  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. ('done', 'done'),
  9. ]
  10. class MissionManager(models.Manager):
  11. def statistic(self, user):
  12. missions = user.own_missions.all()
  13. return {
  14. 'amount': len(missions),
  15. }
  16. class Mission(models.Model):
  17. name = models.CharField(default="未命名任务", max_length=64)
  18. create_time = models.DateTimeField(auto_now_add=True)
  19. update_time = models.DateTimeField(auto_now=True)
  20. nodeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_missions_node")
  21. edgeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_missions_edge")
  22. user = models.ForeignKey(to="api.User", on_delete=models.CASCADE, related_name="own_missions")
  23. objects = MissionManager()
  24. state = models.CharField(choices=state, default="init", max_length=32)
  25. class Meta:
  26. app_label = 'api'