コード例 #1
0
                                on_delete=models.CASCADE)
    description = models.CharField(max_length=255,
                                   verbose_name=_("description"))
    url = models.URLField(verbose_name=_("url"))
    order = models.IntegerField(blank=True, null=True)

    class Meta(object):
        verbose_name = _("contest menu link")
        verbose_name_plural = _("contest menu links")


def contest_links_generator(request):
    if not hasattr(request, 'contest'):
        return

    links = ContestLink.objects.filter(contest=request.contest)
    for link in links:
        # pylint: disable=cell-var-from-loop
        # http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures
        url_generator = lambda request, url=link.url: url
        item = MenuItem(
            name='contest_link_%d' % link.id,
            text=link.description,
            url_generator=url_generator,
            order=link.order,
        )
        yield item


menu_registry.register_generator('contest_links', contest_links_generator)
コード例 #2
0
ファイル: models.py プロジェクト: sio2project/oioioi
        return u'%s,%s' % (self.user, self.contest)


class ContestLink(models.Model):
    contest = models.ForeignKey(Contest, verbose_name=_("contest"),
                                on_delete=models.CASCADE)
    description = models.CharField(max_length=255,
                                   verbose_name=_("description"))
    url = models.URLField(verbose_name=_("url"))
    order = models.IntegerField(blank=True, null=True)

    class Meta(object):
        verbose_name = _("contest menu link")
        verbose_name_plural = _("contest menu links")


def contest_links_generator(request):
    links = ContestLink.objects.filter(contest=request.contest)
    for link in links:
        # pylint: disable=cell-var-from-loop
        # http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures
        url_generator = lambda request, url=link.url: url
        item = MenuItem(
            name='contest_link_%d' % link.id,
            text=link.description,
            url_generator=url_generator,
            order=link.order
        )
        yield item
menu_registry.register_generator('contest_links', contest_links_generator)