Example #1
0
    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'))
Example #2
0
        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)
Example #3
0
        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)
Example #4
0
        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)
Example #5
0
        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)
Example #6
0
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})
Example #7
0
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)
Example #8
0
    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

Example #9
0
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'))
Example #10
0
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)
Example #11
0
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)
Example #12
0
@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)
Example #13
0
        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)
Example #14
0
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)
Example #15
0
            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)
Example #16
0
    @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)
Example #17
0
                              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)
Example #18
0
    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})
Example #19
0
    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)
Example #20
0
        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)