Coverage for src/sideshow/web/menus.py: 100%
13 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-06 15:04 -0600
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-06 15:04 -0600
1# -*- coding: utf-8; -*-
2################################################################################
3#
4# Sideshow -- Case/Special Order Tracker
5# Copyright © 2024 Lance Edgar
6#
7# This file is part of Sideshow.
8#
9# Sideshow is free software: you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# Sideshow is distributed in the hope that it will be useful, but
15# WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17# General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with Sideshow. If not, see <http://www.gnu.org/licenses/>.
21#
22################################################################################
23"""
24Sideshow Menu
25"""
27from wuttaweb import menus as base
30class SideshowMenuHandler(base.MenuHandler):
31 """
32 Sideshow menu handler
33 """
35 def make_menus(self, request, **kwargs):
36 """ """
37 return [
38 self.make_orders_menu(request),
39 self.make_pending_menu(request),
40 self.make_batch_menu(request),
41 self.make_admin_menu(request),
42 ]
44 def make_orders_menu(self, request, **kwargs):
45 """
46 Generate a typical Orders menu.
47 """
48 return {
49 'title': "Orders",
50 'type': 'menu',
51 'items': [
52 {
53 'title': "Create New Order",
54 'route': 'orders.create',
55 'perm': 'orders.create',
56 },
57 {'type': 'sep'},
58 {
59 'title': "All Orders",
60 'route': 'orders',
61 'perm': 'orders.list',
62 },
63 {
64 'title': "All Order Items",
65 'route': 'order_items',
66 'perm': 'order_items.list',
67 },
68 ],
69 }
71 def make_pending_menu(self, request, **kwargs):
72 """
73 Generate a typical Pending menu.
74 """
75 return {
76 'title': "Pending",
77 'type': 'menu',
78 'items': [
79 {
80 'title': "Customers",
81 'route': 'pending_customers',
82 'perm': 'pending_customers.list',
83 },
84 {
85 'title': "Products",
86 'route': 'pending_products',
87 'perm': 'pending_products.list',
88 },
89 ],
90 }
92 def make_batch_menu(self, request, **kwargs):
93 """
94 Generate a typical Batch menu.
95 """
96 return {
97 'title': "Batches",
98 'type': 'menu',
99 'items': [
100 {
101 'title': "New Orders",
102 'route': 'neworder_batches',
103 'perm': 'neworder_batches.list',
104 },
105 ],
106 }
108 def make_admin_menu(self, request, **kwargs):
109 """ """
110 kwargs['include_people'] = True
111 return super().make_admin_menu(request, **kwargs)