Completed
Push — master ( da0207...5a5796 )
by Mathias
01:37
created

pyfreebilling.CustomMenu   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 139
Duplicated Lines 0 %
Metric Value
wmc 2
dl 0
loc 139
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B CustomMenu.init_with_context() 0 130 2
1
# Copyright 2013 Mathias WOLFF
2
# This file is part of pyfreebilling.
3
# 
4
# pyfreebilling is free software: you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation, either version 3 of the License, or
7
# (at your option) any later version.
8
# 
9
# pyfreebilling is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
# 
14
# You should have received a copy of the GNU General Public License
15
# along with pyfreebilling.  If not, see <http://www.gnu.org/licenses/>
16
17
"""
18
This file was generated with the custommenu management command, it contains
19
the classes for the admin menu, you can customize this class as you want.
20
21
To activate your custom menu add the following to your settings.py::
22
    ADMIN_TOOLS_MENU = 'pyfreebilling.menu.CustomMenu'
23
"""
24
25
from django.core.urlresolvers import reverse
26
from django.utils.translation import ugettext_lazy as _
27
from admin_tools.menu import items, Menu
28
from django.template import Context, loader, RequestContext
29
from django.http import HttpResponse, HttpResponseRedirect
30
31
class CustomMenu(Menu):
32
    """
33
    Custom Menu for pyfreebilling admin site.
34
    """
35
#    def __init__(self, **kwargs):
36
#        request = context['request']
37
#        Menu.__init__(self, **kwargs)
38
39
40
    def init_with_context(self, context): 
41
        user = context['request'].user
42
        if user.is_superuser:
43
            self.children += [
44
                items.MenuItem(_('Dashboard'), reverse('admin:index')),
45
                items.Bookmarks(),
46
                items.MenuItem(_('Companies'),
47
                    children=[
48
                        items.MenuItem(_('Companies'), '/extranet/pyfreebill/company/',
49
                            children=[
50
                                items.MenuItem(_('List'), '/extranet/pyfreebill/company/',
51
                                    children=[
52
                                        items.MenuItem(_('All'), '/extranet/pyfreebill/company/'),
53
                                        items.MenuItem(_('Customers'), '/extranet/pyfreebill/company/?customer_enabled__exact=1',
54
                                            children=[
55
                                                items.MenuItem(_('All'), '/extranet/pyfreebill/company/?customer_enabled__exact=1'),
56
                                                items.MenuItem(_('Prepaid Account'), '/extranet/pyfreebill/company/?customer_enabled__exact=1&prepaid__exact=1'),
57
                                                items.MenuItem(_('Postpaid account'), '/extranet/pyfreebill/company/?customer_enabled__exact=1&prepaid__exact=0'),
58
                                            ]
59
                                        ),
60
                                        items.MenuItem(_('Providers'), '/extranet/pyfreebill/company/?supplier_enabled__exact=1'),
61
                                        items.MenuItem(_('Add new company'), '/extranet/pyfreebill/company/add/'),
62
                                    ]
63
                                ),
64
                                items.MenuItem(_('Balance history'), '/extranet/pyfreebill/companybalancehistory/'),
65
                                items.MenuItem(_('Add payment'), '/extranet/pyfreebill/companybalancehistory/add/'),
66
                                items.MenuItem(_('customer management'),
67
                                    children=[
68
                                        items.MenuItem(_('Customer SIP accounts'), '/extranet/pyfreebill/customerdirectory/'),
69
                                        items.MenuItem(_('Destination number normalization rules'), '/extranet/pyfreebill/customernormalizationrules/'),
70
                                        items.MenuItem(_('CallerID Normalization Rules'), '/extranet/pyfreebill/customercidnormalizationrules/'),
71
                                    ]
72
                                ),
73
                                items.MenuItem(_('provider management'),
74
                                    children=[
75
                                        items.MenuItem(_('Provider gateways'), '/extranet/pyfreebill/sofiagateway/'),
76
                                        items.MenuItem(_('CallerID Normalization Rules'), '/extranet/pyfreebill/carriercidnormalizationrules/'),
77
                                    ]
78
                                ),
79
                            ]
80
                        ),
81
                        items.MenuItem(_('Contacts'), '/extranet/pyfreebill/person/',
82
                            children=[
83
                                items.MenuItem(_('List'), '/extranet/pyfreebill/person/'),
84
                                items.MenuItem(_('Add'), '/extranet/pyfreebill/person/add/'),
85
                            ]
86
                        ),
87
                        items.MenuItem(_('Groups'), '/extranet/pyfreebill/group/',
88
                            children=[
89
                                items.MenuItem(_('List'), '/extranet/pyfreebill/group/'),
90
                                items.MenuItem(_('Add'), '/extranet/pyfreebill/group/add/'),
91
                            ]
92
                        ),
93
                    ]
94
                ),
95
                items.MenuItem(_('Rates'),
96
                    children=[
97
                        items.MenuItem(_('Sell rates'),
98
                            children=[
99
                                items.MenuItem(_('Ratecards'), '/extranet/pyfreebill/ratecard/'),
100
                                items.MenuItem(_('Customer ratecards'), '/extranet/pyfreebill/customerratecards/'),
101
                                items.MenuItem(_('Rates'), '/extranet/pyfreebill/customerrates/'),
102
                            ]
103
                        ),
104
                        items.MenuItem(_('LCRs'), '/extranet/pyfreebill/lcrgroup/'),
105
                        items.MenuItem(_('Provider rates'),
106
                            children=[
107
                                items.MenuItem(_('Provider tariffs'), '/extranet/pyfreebill/providertariff/'),
108
                                items.MenuItem(_('Provider rates'), '/extranet/pyfreebill/providerrates/'),
109
                            ]
110
                        ),
111
                    ]
112
                ),
113
                items.MenuItem(_('Reports'),
114
                    children=[
115
                        items.MenuItem(_('CDRs'), '/extranet/pyfreebill/cdr/',
116
                            children=[
117
                                items.MenuItem(_('CDRs view'), '/extranet/pyfreebill/cdr/'),
118
                                items.MenuItem(_('Successfull CDRs'), '/extranet/pyfreebill/cdr/?effective_duration__gt=0'),
119
                                items.MenuItem(_('Failed CDRs'), '/extranet/pyfreebill/cdr/?effective_duration__exact=0'),
120
                                items.MenuItem(_('Hangup Cause'), '/extranet/pyfreebill/hangupcause/'),
121
                            ]
122
                        ),
123
                        items.MenuItem(_('Reports'), '/extranet/report/'),
124
                    ]
125
                ),
126
                items.MenuItem(_('Admin'),
127
                    children=[
128
                        items.MenuItem(_('Users'), '/extranet/auth/',
129
                            children=[
130
                                items.MenuItem(_('Groups'), '/extranet/auth/group/'),
131
                                items.MenuItem(_('Users'), '/extranet/auth/user/'),
132
                                items.MenuItem(_('Rates'), '/extranet/pyfreebill/customerrates/'),
133
                            ]
134
                        ),
135
                        items.MenuItem(_('VoIP switches'),
136
                            children=[
137
                                items.MenuItem(_('VoIP switches'), '/extranet/pyfreebill/voipswitch/'),
138
                                items.MenuItem(_('SIP profiles'), '/extranet/pyfreebill/sipprofile/'),
139
                                items.MenuItem(_('Destination Number Normalization Rules'), '/extranet/pyfreebill/destinationnumberrules/'),
140
                                items.MenuItem(_('ACL'), '/extranet/pyfreebill/acllists/'),
141
                            ]
142
                        ),
143
                        items.MenuItem(_('Logs'),
144
                            children=[
145
                                items.MenuItem(_('Access logs'), '/extranet/axes/accesslog/'),
146
                                items.MenuItem(_('Access attemps'), '/extranet/axes/accessattempt/'),
147
                                items.MenuItem(_('Honeypot access attemps'), '/extranet/admin_honeypot/loginattempt/'),
148
                                items.MenuItem(_('Recurring tasks logs'), '/extranet/chroniker/log/'),
149
                            ]
150
                        ),
151
                        items.MenuItem(_('Databases'),
152
                            children=[
153
                                items.MenuItem(_('Database size'), '/extranet/database_size/table/'),
154
                            ]
155
                        ),
156
                        items.MenuItem(_('Status'), '/extranet/status/'),
157
                    ]
158
                ),
159
            ]
160
        else:
161
            self.children += [
162
                items.MenuItem(_('Dashboard'), reverse('admin:index')),
163
                items.MenuItem(_('My Account'), '/extranet/pyfreebill/company/'),
164
                items.MenuItem(_('My CDR'), '/extranet/pyfreebill/cdr/'),
165
            ]
166
#        self.children += [
167
#            ReturnToSiteItem()
168
#        ]
169
        return super(CustomMenu, self).init_with_context(context)
170