Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Game(models.Model):
- def __init__(self, *args, **kwargs):
- super(Game, self).__init__(*args, **kwargs)
- #Non-django-ORM instance variables
- self.question_bank = []
- self.answer_bank = []
- self.object_id_list = []
- self.qi = 0 # Question iterator
- self.max_questions = 10
- self.player_list = []
- self.question_started = None
- GAME_CHOICES = (
- ('solo', 'Trivia Solo'),
- ('rtt', 'Real-Time Trivia'),
- ('rtd', 'Real-Time Deathmatch'),
- ('mtb', 'Multiplayer Turn-Based'),
- )
- category = models.ForeignKey('Category')
- maxPlayers = models.IntegerField()
- gameType = models.CharField("Game Type", max_length=255, choices=GAME_CHOICES)
- started = models.DateTimeField(auto_now_add=True)
- finished = models.DateTimeField(default=None, null=True)
- players = models.ManyToManyField(User, through="Player")
- def __unicode__(self):
- return str(self.id) + " | " + self.gameType + " | " + self.category.categoryName + " | " + str(self.started)
- def get_questions(self):
- if len(self.object_id_list) != 0:
- self.question_bank.append(Question.objects.filter(category__categoryName=self.category.categoryName).exclude(id__in=self.object_id_list).order_by('?')[:10])
- else:
- self.question_bank = Question.objects.filter(category__id=self.category.id).order_by('?')[:10]
- for q in self.question_bank:
- self.object_id_list.append(q.id)
- def update_player_list(self):
- player_list = []
- the_players = self.players.all()
- player_number = 1
- for player in the_players:
- single_player = player.player_set.get(game__id__exact=self.id)
- #single_player.player_number = player_number
- player_list.append(single_player)
- player_number += 1
- self.player_list = player_list
- def get_username_list(self):
- username_arr = []
- for player in self.player_list:
- tmp_obj = {}
- tmp_obj['name'] = player.base_user.username
- tmp_obj['number'] = player.player_number
- username_arr.append(tmp_obj)
- return username_arr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement