Guest User

Untitled

a guest
Jan 22nd, 2018
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. from datetime import timedelta, datetime
  2. from django.db import models
  3. from django.contrib.auth.models import User
  4. from main.models import Challenge, ChallengeTaken, Language, Submission, Task
  5.  
  6. def create_challenge(title='title test', overview='overview test',
  7. date_created=None, date_opened=None, published=None,
  8. date_closed=None, date_published=None,
  9. language=None, enviroment='', **kwargs):
  10.  
  11. if date_created is None:
  12. date_created = datetime.now()
  13.  
  14. if date_opened is None:
  15. date_opened = date_created
  16.  
  17. if date_closed is None:
  18. date_closed = date_created + timedelta(days=1)
  19.  
  20. if date_published is None:
  21. date_published = date_created
  22.  
  23. if language is None:
  24. language = Language.objects.get(pk=1)
  25.  
  26. if published is None:
  27. published = True
  28.  
  29. kwargs.update(title=title,
  30. overview=overview,
  31. enviroment=enviroment,
  32. date_created=date_created,
  33. date_opened=date_opened,
  34. date_closed=date_closed,
  35. date_published=date_published,
  36. published=published,
  37. language=language)
  38.  
  39. challenge = Challenge.objects.create(**kwargs)
  40.  
  41. return challenge
  42.  
  43. def create_challenge_taken(started_at=None, username=None,
  44. challenge=None, task=None, **kwargs):
  45. if username is None:
  46. username = 'admin'
  47. else:
  48. user = create_user()
  49. username = user.username
  50.  
  51. if started_at is None:
  52. started_at = datetime.now()
  53.  
  54. if challenge is None:
  55. title = 'take 1'
  56.  
  57. challenge = Challenge.objects.get(title=title)
  58. userprofile = User.objects.get(username=username).profile
  59.  
  60. if task is None:
  61. task = Task.objects.filter(challenge=challenge).order_by('?')[0]
  62.  
  63. kwargs.update(started_at=started_at,
  64. user=userprofile,
  65. task=task,
  66. challenge=challenge)
  67.  
  68. challenge_taken = ChallengeTaken.objects.create(**kwargs)
  69.  
  70. return challenge_taken
  71.  
  72. def create_submission(challenge_taken=None, code=None, attempt=None,
  73. submitted_at=None, **kwargs):
  74. if challenge_taken is None:
  75. challenge_taken = 1
  76.  
  77. if submitted_at is None:
  78. submitted_at = datetime.now()
  79.  
  80. if code is None:
  81. code = 'code'
  82.  
  83. if attempt is None:
  84. attempt = 1
  85.  
  86. challenge_taken = ChallengeTaken.objects.get(pk=challenge_taken)
  87.  
  88. kwargs.update(challenge_taken=challenge_taken,
  89. submitted_at=submitted_at,
  90. attempt=attempt,
  91. code=code)
  92.  
  93. submission = Submission.objects.create(**kwargs)
  94.  
  95. return submission
  96.  
  97. def create_task(description=None, challenge=None, **kwargs):
  98. if description is None:
  99. description = 'TESTTTTTTTT!!'
  100.  
  101. if challenge is None:
  102. title = 'take 1'
  103.  
  104. challenge = Challenge.objects.get(title=title)
  105.  
  106. kwargs.update(description=description,
  107. challenge=challenge)
  108.  
  109. task = Task.objects.create(**kwargs)
  110.  
  111. return task
  112.  
  113. def create_user(username=None, email=None,password =None, **kwargs):
  114. if username is None:
  115. username = 'john'
  116.  
  117. if email is None:
  118. email = 'lennon@thebeatles.com'
  119.  
  120. if password is None:
  121. password = 'johnpassword'
  122.  
  123. kwargs.update(username=username,
  124. email=email,
  125. password=password)
  126.  
  127. user = User.objects.create_user(**kwargs)
  128. user.is_staff = False
  129. user.save()
  130.  
  131. return user
Add Comment
Please, Sign In to add comment