Exemple #1
0
    def generator():
        is_admin = is_contest_admin(request)
        messages = visible_messages(request)
        visible_ids = messages.values_list('id', flat=True)
        if is_admin:
            messages = unanswered_questions(messages)
        else:
            messages = new_messages(request, messages)
        count = messages.count()
        if count:
            text = ungettext('%(count)d NEW MESSAGE', '%(count)d NEW MESSAGES',
                    count) % {'count': count}

            if count == 1:
                m = messages.get()
                link = reverse('message', kwargs={
                        'contest_id': request.contest.id,
                        'message_id': m.top_reference_id
                            if m.top_reference_id in visible_ids else m.id
                    })
            else:
                link = reverse('contest_messages', kwargs={'contest_id':
                    request.contest.id})
            return make_navbar_badge(link, text)
        else:
            return ''
Exemple #2
0
 def generator():
     is_admin = request.user.has_perm('contests.contest_admin',
             request.contest)
     messages = visible_messages(request)
     if is_admin:
         messages = messages.filter(message__isnull=True,
                 top_reference__isnull=True, kind='QUESTION')
     else:
         messages = new_messages(request, messages)
     count = messages.count()
     if count:
         text = ungettext('%(count)d NEW MESSAGE', '%(count)d NEW MESSAGES',
                 count) % {'count': count}
         if count == 1:
             message = messages.get()
             link = reverse('message', kwargs={
                     'contest_id': request.contest.id,
                     'message_id': message.top_reference_id or message.id
                 })
         else:
             link = reverse('contest_messages', kwargs={'contest_id':
                 request.contest.id})
         return make_navbar_badge(link, text)
     else:
         return ''
Exemple #3
0
 def generator():
     dangling_pis = ProblemInstance.objects.filter(
         contest=request.contest,
         round__isnull=True,
     )
     count = dangling_pis.count()
     if not count:
         return ''
     elif count == 1:
         pi = dangling_pis.get()
         link = reverse(
             'oioioiadmin:contests_probleminstance_change',
             args=(pi.id, ),
         )
         if request.path == link:
             return ''
     else:
         link = reverse('oioioiadmin:contests_probleminstance_changelist')
     text = ungettext(
         '%(count)d PROBLEM WITHOUT ROUND',
         '%(count)d PROBLEMS WITHOUT ROUNDS',
         count,
     )
     text = text % {'count': count}
     return make_navbar_badge(link, text)
Exemple #4
0
    def generator():
        is_admin = is_contest_admin(request)
        messages = visible_messages(request)
        visible_ids = messages.values_list('id', flat=True)
        if is_admin:
            messages = unanswered_questions(messages)
        else:
            messages = new_messages(request, messages)
        count = messages.count()
        if count:
            text = ungettext('%(count)d NEW MESSAGE', '%(count)d NEW MESSAGES',
                             count) % {
                                 'count': count
                             }

            if count == 1:
                m = messages.get()
                link = reverse('message',
                               kwargs={
                                   'contest_id':
                                   request.contest.id,
                                   'message_id':
                                   m.top_reference_id if m.top_reference_id
                                   in visible_ids else m.id
                               })
            else:
                link = reverse('contest_messages',
                               kwargs={'contest_id': request.contest.id})
            return make_navbar_badge(link, text)
        else:
            return ''
Exemple #5
0
 def generator():
     pis = ProblemInstance.objects.filter(contest=request.contest,
             needs_rejudge=True)
     count = pis.count()
     if not count:
         return ''
     else:
         link = reverse('oioioiadmin:contests_probleminstance_changelist')
     text = ungettext("%(count)d PROBLEM NEEDS REJUDGING",
             "%(count)d PROBLEMS NEED REJUDGING",
             count) % {'count': count}
     return make_navbar_badge(link, text)
Exemple #6
0
 def generator():
     pis = ProblemInstance.objects.filter(contest=request.contest,
                                          needs_rejudge=True)
     count = pis.count()
     if not count:
         return ''
     else:
         link = reverse('oioioiadmin:contests_probleminstance_changelist')
     text = ungettext("%(count)d PROBLEM NEEDS REJUDGING",
                      "%(count)d PROBLEMS NEED REJUDGING", count) % {
                          'count': count
                      }
     return make_navbar_badge(link, text)
Exemple #7
0
 def generator():
     dangling_pis = ProblemInstance.objects.filter(contest=request.contest,
             round__isnull=True)
     count = dangling_pis.count()
     if not count:
         return ''
     elif count == 1:
         pi = dangling_pis.get()
         link = reverse('oioioiadmin:contests_probleminstance_change',
                     args=(pi.id,))
         if request.path == link:
             return ''
     else:
         link = reverse('oioioiadmin:contests_probleminstance_changelist')
     text = ungettext('%(count)d PROBLEM WITHOUT ROUND',
             '%(count)d PROBLEMS WITHOUT ROUNDS',
             count) % {'count': count}
     return make_navbar_badge(link, text)
Exemple #8
0
 def generator():
     return make_navbar_badge(**navbar_messages_generator(request))
Exemple #9
0
 def generator():
     return make_navbar_badge(**navbar_messages_generator(request))