menu.py 4.58 KB
Newer Older
Patrick Colmant's avatar
Patrick Colmant committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
# -*- coding: utf-8 -*-
from const import *
from menus.base import Menu, NavigationNode
from menus.menu_pool import menu_pool
from django.utils.translation import ugettext_lazy as _
from cms.menu_bases import CMSAttachMenu
from repanier.models import Permanence

from menus.base import Menu, NavigationNode
from menus.menu_pool import menu_pool
from datetime import date
from django.core.urlresolvers import reverse
from django.conf import settings

import logging

class PermanenceMenu(Menu):

    def get_nodes(self, request):
        nodes = []
        # site = Site.objects.get_current()
        master_id = 1
        node = NavigationNode(
            _('Permanence'), 
            "/", 
            id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
            )
        nodes.append(node)
        submenu_id = master_id + 1


        node = NavigationNode(
            _('My orders'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)
        submenu_id += 1

        node = NavigationNode(
            _('My participation'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)
        submenu_id += 1

        node = NavigationNode(
            _('My finance'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)

        submenu_id += 1
        node = NavigationNode(
            _('My deliveries pending for invoicing'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)
        submenu_id += 1

        node = NavigationNode(
            _('Send mail to coordinators'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)
        submenu_id += 1

        node = NavigationNode(
            _('Send mail to all members'),
            "/",
            id = submenu_id, parent_id = master_id,
            attr={'visible_for_authenticated' : True,
            'visible_for_anonymous' : True, },
            visible=True
        )
        nodes.append(node)
        submenu_id += 1

        separator = False
        for permanence in Permanence.objects.all().filter(
            status=PERMANENCE_OPEN, 
            site = settings.SITE_ID
            ).order_by("distribution_date"):
            if(not separator):
                node = NavigationNode(
                    ('------'),
                    "/",
                    id = submenu_id, parent_id = master_id,
                    attr={'visible_for_authenticated' : True,
                    'visible_for_anonymous' : True, },
                    visible=True
                )
                nodes.append(node)
                submenu_id += 1
                separator = True
            node = NavigationNode(
                # _("Permanence on ") + permanence.distribution_date.strftime('%d-%m-%Y'),
                # reverse('order_view', args=(permanence.distribution_date.year,
                #     permanence.distribution_date.month, 
                #     permanence.distribution_date.day)),
                permanence,
                reverse('order_view', args=(permanence.id,)),                
                id = submenu_id, parent_id = master_id,
                attr={'visible_for_authenticated' : True,
                'visible_for_anonymous' : True, },
                visible=True
            )
            nodes.append(node)
            submenu_id += 1
        # for node in nodes:
        #     logging.debug('Node before : %s' % node.get_menu_title())
        #     for attr in (x for x in dir(node) if not x.startswith('__')):
        #         logging.debug('%s => %s' % (attr, getattr(node, attr)))
        return nodes

menu_pool.register_menu(PermanenceMenu)