user = context.get('user', None) if SpecialQuestGame.disabled() or not user or not user.is_authenticated(): return '' user = user.get_profile().get_extension(SpecialQuestUser) count = len(user.active_tasks) if not count: return '' return render_to_string('specialquest/sidebar.html', { 'not_done': count, 'id': 'specialquest' }) register_sidebar_block('specialquest', sidebar_widget) def header_link(context): user = context.get('user', None) if not user or not user.is_authenticated() or SpecialQuestGame.disabled(): return {} profile = user.get_profile() if profile: user = profile.get_extension(SpecialQuestUser) count = len(user.active_tasks) else: count = 0 url = reverse('wouso.games.specialquest.views.index') return dict(link=url, count=count, text=_('Special'))
stdout.write(' Calculating coin %s top...' % coin) players = list(Player.objects.filter(race__can_play=True)) players.sort(lambda b, a: a.coins.get(coin) - b.coins.get(coin)) for i, p in enumerate(players): hs = NewHistory.record(p, now, relative_to=coin_obj) hs.position, hs.points = i + 1, p.coins.get(coin_obj.name) hs.save() stdout.write('\n') @classmethod def coin_top_settings(cls): """ Return a list of coin names for which we calculate the top Example: ['gold', 'karma'] """ return [c for c in Setting.get('top-coins').get_value().split(',') if c] or [] @classmethod def get_coin_position(cls, coin, user): coin = Coin.get(coin) return NewHistory.get_obj_position(user, relative_to=coin) register_sidebar_block('top', Top.get_sidebar_widget) # def user_post_save(sender, instance, **kwargs): # profile = instance.get_profile() # profile.get_extension(TopUser) # models.signals.post_save.connect(user_post_save, User)
special_challenge.save() class SpecialChallengeGame(Game): class Meta: proxy = True QPOOL_CATEGORY = 'specialchallenge' def __init__(self, *args, **kwargs): self._meta.get_field('verbose_name').default = "Special Challenge" self._meta.get_field('short_name').default = "" self._meta.get_field('url').default = "specialchallenge_index" super(SpecialChallengeGame, self).__init__(*args, **kwargs) @classmethod def get_category(cls): return Category.objects.get(name=cls.QPOOL_CATEGORY) @classmethod def get_sidebar_widget(kls, context): if kls.disabled(): return '' return render_to_string('specialchallenge/sidebar.html', {}) @classmethod def get_manager(cls, challenge): return SpecialChallengeManager(challenge) register_category(SpecialChallengeGame.QPOOL_CATEGORY, SpecialChallengeGame) register_sidebar_block('specialchallenge', SpecialChallengeGame.get_sidebar_widget)
done = reviews.count() == expected_reviews.count() return dict(participated=participated, reviews=reviews, expected_reviews=expected_reviews, done=done) @classmethod def get_question_category(cls): return Category.objects.get_or_create(name='workshop')[0] @classmethod def get_sidebar_widget(cls, context): user = context.get('user', None) if not user or user.is_anonymous(): return '' player = user.get_profile() ws_player = player.get_extension(WorkshopPlayer) semigroups = cls.get_semigroups() workshop = cls.get_for_player_now(player) if workshop: assessment = workshop.get_assessment(player) else: assessment = None sm = ws_player.semigroup in semigroups return render_to_string('workshop/sidebar.html', {'semigroups': semigroups, 'workshop': workshop, 'semigroup_member': sm, 'assessment': assessment, 'id': 'workshop'}) register_sidebar_block('workshop', WorkshopGame.get_sidebar_widget)
players.sort(lambda b, a: a.coins.get(coin) - b.coins.get(coin)) for i, p in enumerate(players): hs = NewHistory.record(p, now, relative_to=coin_obj) hs.position, hs.points = i + 1, p.coins.get(coin_obj.name) hs.save() stdout.write('\n') @classmethod def coin_top_settings(cls): """ Return a list of coin names for which we calculate the top Example: ['gold', 'karma'] """ return [ c for c in Setting.get('top-coins').get_value().split(',') if c ] or [] @classmethod def get_coin_position(cls, coin, user): coin = Coin.get(coin) return NewHistory.get_obj_position(user, relative_to=coin) register_sidebar_block('top', Top.get_sidebar_widget) #def user_post_save(sender, instance, **kwargs): # profile = instance.get_profile() # profile.get_extension(TopUser) #models.signals.post_save.connect(user_post_save, User)
register_header_link('challenges', header_link) def sidebar_widget(context): user = context.get('user', None) if not user or not user.is_authenticated(): return '' chall_user = user.get_profile().get_extension(ChallengeUser) challs = ChallengeGame.get_active(chall_user) challs = [c for c in challs if c.status == 'A'] # reduce noise, thanks if not challs: return '' return render_to_string('challenge/sidebar.html', {'challenges': challs, 'challenge': ChallengeGame, 'chall_user': chall_user, 'id': 'challenge'}) register_sidebar_block('challenge', sidebar_widget) class HistoryView(ListView): template_name = 'challenge/history.html' context_object_name = 'challenges' def get_queryset(self): self.player = get_object_or_404(ChallengeUser, pk=self.kwargs['playerid']) challenges = [p.challenge for p in Participant.objects.filter(user=self.player)] challenges = sorted(challenges, key=lambda c: c.date) return challenges def get_context_data(self, **kwargs): context = super(HistoryView, self).get_context_data(**kwargs) context.update({'challplayer': self.player})
from django.template import RequestContext from django.template.loader import render_to_string from wouso.core.ui import register_sidebar_block from wouso.interface.apps.files.models import FileCategory, File @login_required def index(request): """ Shows all lessons related to the current user """ categories = FileCategory.objects.all() return render_to_response('files/index.html', {'categories': categories}, context_instance=RequestContext(request)) def sidebar_widget(context): user = context.get('user', None) if not user or not user.is_authenticated(): return '' if File.disabled(): return '' return render_to_string('files/sidebar.html', {}) register_sidebar_block('files', sidebar_widget)
if not quest_user.started: quest_progress = None else: quest_progress = 1.0 * quest_user.current_level / quest.count * 100 if quest_user.finished and (quest_user.is_current(quest)): time_passed = datetime.now() - quest_user.finished_time if time_passed > timedelta(seconds=600): # ten minutes return '' return render_to_string('quest/sidebar.html', {'quest': quest, 'quser': quest_user, 'quest_progress': quest_progress, 'id': 'quest' }) register_sidebar_block('quest', sidebar_widget) class HistoryView(ListView): template_name = 'quest/history.html' context_object_name = 'history' def get_queryset(self): return Quest.objects.all().order_by('-end') def get_context_data(self, **kwargs): context = super(HistoryView, self).get_context_data(**kwargs) context.update({'gods': Player.get_quest_gods()}) return context
def sidebar_widget(context): user = context.get('user', None) if SpecialQuestGame.disabled() or not user or not user.is_authenticated(): return '' user = user.get_profile().get_extension(SpecialQuestUser) count = len(user.active_tasks) if not count: return '' return render_to_string('specialquest/sidebar.html', {'not_done': count}) register_sidebar_block('specialquest', sidebar_widget) def header_link(context): user = context.get('user', None) if not user or not user.is_authenticated() or SpecialQuestGame.disabled(): return {} profile = user.get_profile() if profile: user = profile.get_extension(SpecialQuestUser) count = len(user.active_tasks) else: count = 0 url = reverse('wouso.games.specialquest.views.index') return dict(link=url, count=count, text=_('Special'))
class SpecialChallengeGame(Game): class Meta: proxy = True QPOOL_CATEGORY = 'specialchallenge' def __init__(self, *args, **kwargs): self._meta.get_field('verbose_name').default = "Special Challenge" self._meta.get_field('short_name').default = "" self._meta.get_field('url').default = "specialchallenge_index" super(SpecialChallengeGame, self).__init__(*args, **kwargs) @classmethod def get_category(cls): return Category.objects.get(name=cls.QPOOL_CATEGORY) @classmethod def get_sidebar_widget(kls, context): if kls.disabled(): return '' return render_to_string('specialchallenge/sidebar.html', {}) @classmethod def get_manager(cls, challenge): return SpecialChallengeManager(challenge) register_category(SpecialChallengeGame.QPOOL_CATEGORY, SpecialChallengeGame) register_sidebar_block('specialchallenge', SpecialChallengeGame.get_sidebar_widget)
def sidebar_widget(context): # TODO: nothing should happen in the sidebar_widget user = context.get('user', None) if not user or not user.is_authenticated(): return '' if QotdGame.disabled(): return '' qotd = QotdGame.get_for_today() qotd_user = user.get_profile().get_extension(QotdUser) if not qotd_user.has_question: qotd_user.set_question(qotd) else: qotd = qotd_user.my_question if qotd_user.has_answered: time_passed = datetime.now() - qotd_user.last_answered qotd_user.reset_question() if time_passed > timedelta(seconds=120): # two minutes return '' return render_to_string('qotd/sidebar.html', {'question': qotd, 'quser': qotd_user, 'qotd': QotdGame, 'id': 'qotd'}) register_sidebar_block('qotd', sidebar_widget)
@login_required def history(request): return render_to_response( "qotd/history.html", {"history": QotdGame.get_history()}, context_instance=RequestContext(request) ) def sidebar_widget(context): # TODO: nothing should happen in the sidebar_widget user = context.get("user", None) if not user or not user.is_authenticated(): return "" qotd = QotdGame.get_for_today() qotd_user = user.get_profile().get_extension(QotdUser) if not qotd_user.has_question: qotd_user.set_question(qotd) else: qotd = qotd_user.my_question if qotd_user.has_answered: time_passed = datetime.now() - qotd_user.last_answered qotd_user.reset_question() if time_passed > timedelta(seconds=120): # two minutes return "" return render_to_string("qotd/sidebar.html", {"question": qotd, "quser": qotd_user, "qotd": QotdGame, "id": "qotd"}) register_sidebar_block("qotd", sidebar_widget)
user = context.get("user", None) if not user or user.is_anonymous(): return "" if WorkshopGame.disabled(): return "" player = user.get_profile() ws_player = player.get_extension(WorkshopPlayer) semigroups = cls.get_semigroups() workshop = cls.get_for_player_now(player) if workshop: assessment = workshop.get_assessment(player) else: assessment = None sm = ws_player.semigroup in semigroups return render_to_string( "workshop/sidebar.html", { "semigroups": semigroups, "workshop": workshop, "semigroup_member": sm, "assessment": assessment, "id": "workshop", }, ) register_sidebar_block("workshop", WorkshopGame.get_sidebar_widget)
from django.shortcuts import render_to_response from django.template import RequestContext from django.template.loader import render_to_string from wouso.core.ui import register_sidebar_block from wouso.interface.apps.files.models import FileCategory, File @login_required def index(request): """ Shows all lessons related to the current user """ categories = FileCategory.objects.all() return render_to_response('files/index.html', {'categories': categories}, context_instance=RequestContext(request)) def sidebar_widget(context): user = context.get('user', None) if not user or not user.is_authenticated(): return '' if File.disabled(): return '' return render_to_string('files/sidebar.html', {}) register_sidebar_block('files', sidebar_widget)
self.through = None # get YouTube embed video url match = re.search(r'^(http|https)\:\/\/www\.youtube\.com\/watch\?v\=(\w*)(\&(.*))?$', self.lesson.youtube_url) if match: embed_url = '//www.youtube.com/embed/%s' % (match.group(2)) else: embed_url = '' return render_to_response('lesson/lesson.html', {'lesson': self.lesson, 'through': self.through, 'embed_url': embed_url}, context_instance=RequestContext(request)) lesson = login_required(LessonView.as_view()) def sidebar_widget(context): user = context.get('user', None) if not user or not user.is_authenticated(): return '' if Lesson.disabled(): return '' return render_to_string('lesson/sidebar.html', {}) register_sidebar_block('lesson', sidebar_widget)
@classmethod def get_sidebar_widget(cls, context): user = context.get('user', None) if not user or user.is_anonymous(): return '' if WorkshopGame.disabled(): return '' player = user.get_profile() ws_player = player.get_extension(WorkshopPlayer) semigroups = cls.get_semigroups() workshop = cls.get_for_player_now(player) if workshop: assessment = workshop.get_assessment(player) else: assessment = None sm = ws_player.semigroup in semigroups return render_to_string( 'workshop/sidebar.html', { 'semigroups': semigroups, 'workshop': workshop, 'semigroup_member': sm, 'assessment': assessment, 'id': 'workshop' }) register_sidebar_block('workshop', WorkshopGame.get_sidebar_widget)
context_instance=RequestContext(request)) def sidebar_widget(context): # TODO: nothing should happen in the sidebar_widget user = context.get('user', None) if not user or not user.is_authenticated(): return '' qotd = QotdGame.get_for_today() qotd_user = user.get_profile().get_extension(QotdUser) if not qotd_user.has_question: qotd_user.set_question(qotd) else: qotd = qotd_user.my_question if qotd_user.has_answered: time_passed = datetime.now() - qotd_user.last_answered qotd_user.reset_question() if time_passed > timedelta(seconds=120): # two minutes return '' return render_to_string('qotd/sidebar.html', { 'question': qotd, 'quser': qotd_user, 'qotd': QotdGame, 'id': 'qotd' }) register_sidebar_block('qotd', sidebar_widget)
if not user or not user.is_authenticated(): return "" chall_user = user.get_profile().get_extension(ChallengeUser) challs = ChallengeGame.get_active(chall_user) challs = [c for c in challs if c.status == "A"] # reduce noise, thanks if not challs: return "" return render_to_string( "challenge/sidebar.html", {"challenges": challs, "challenge": ChallengeGame, "chall_user": chall_user, "id": "challenge"}, ) register_sidebar_block("challenge", sidebar_widget) class HistoryView(ListView): template_name = "challenge/history.html" context_object_name = "challenges" def get_queryset(self): self.player = get_object_or_404(ChallengeUser, pk=self.kwargs["playerid"]) challenges = [p.challenge for p in Participant.objects.filter(user=self.player)] challenges = sorted(challenges, key=lambda c: c.date) return challenges def get_context_data(self, **kwargs): context = super(HistoryView, self).get_context_data(**kwargs) context.update({"challplayer": self.player})
played = gc_user.get_played() if not gc_user in GrandChallengeGame.base_query(): messages.error(request, _('We are sorry, you are not part of the tournament')) return render(request, 'grandchallenge/message.html') return render_to_response('grandchallenge/index.html', { 'active': active, 'played': played, 'gcuser': gc_user, 'gc': GrandChallengeGame }, context_instance=RequestContext(request)) def sidebar_widget(context): user = context.get('user', None) gc = GrandChallengeGame if gc.disabled() or not user or not user.is_authenticated(): return '' gc_user = user.get_profile().get_extension(GrandChallengeUser) return render_string('grandchallenge/sidebar.html', { 'gc': gc, 'gcuser': gc_user, 'id': 'grandchallenge' }) register_sidebar_block('grandchallenge', sidebar_widget)
points, gold = self.quiz.calculate_reward(results) self.through.set_played(results, points, gold) grade = float(points) / self.quiz.points_reward * 10 return render_to_response('quiz/result.html', {'quiz': self.quiz, 'points': points, 'grade': grade}, context_instance=RequestContext(request)) quiz = login_required(QuizView.as_view()) def sidebar_widget(context): user = context.get('user', None) if not user or not user.is_authenticated(): return '' if QuizGame.disabled(): return '' number_of_active_quizzes = Quiz.objects.filter(status='A', type='P').count() return render_to_string('quiz/sidebar.html', {'number_of_active_quizzes': number_of_active_quizzes}) register_sidebar_block('quiz', sidebar_widget)