diff --git a/rattail/pyramid/templates/customergroups/index.mako b/rattail/pyramid/templates/customergroups/index.mako
new file mode 100644
index 00000000..7205a21e
--- /dev/null
+++ b/rattail/pyramid/templates/customergroups/index.mako
@@ -0,0 +1,5 @@
+<%inherit file="/index.mako" />
+
+<%def name="title()">Customer Groups%def>
+
+${parent.body()}
diff --git a/rattail/pyramid/templates/subdepartments/index.mako b/rattail/pyramid/templates/subdepartments/index.mako
new file mode 100644
index 00000000..3a229064
--- /dev/null
+++ b/rattail/pyramid/templates/subdepartments/index.mako
@@ -0,0 +1,5 @@
+<%inherit file="/index.mako" />
+
+<%def name="title()">Subdepartments%def>
+
+${parent.body()}
diff --git a/rattail/pyramid/views/customergroups.py b/rattail/pyramid/views/customergroups.py
new file mode 100644
index 00000000..1d42a4a0
--- /dev/null
+++ b/rattail/pyramid/views/customergroups.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+################################################################################
+#
+# Rattail -- Retail Software Framework
+# Copyright © 2010-2012 Lance Edgar
+#
+# This file is part of Rattail.
+#
+# Rattail is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Affero General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Rattail. If not, see .
+#
+################################################################################
+
+"""
+``rattail.pyramid.views.customergroups`` -- CustomerGroup Views
+"""
+
+from edbob.pyramid.views import SearchableAlchemyGridView, AlchemyGridView
+
+import rattail
+
+
+class CustomerGroupsGrid(SearchableAlchemyGridView):
+
+ mapped_class = rattail.CustomerGroup
+ route_name = 'customergroups'
+ route_url = '/customergroups'
+ renderer = '/customergroups/index.mako'
+ permission = 'customergroups.list'
+ sort = 'name'
+
+ def filter_map(self):
+ return self.make_filter_map(ilike=['name'])
+
+ def filter_config(self):
+ return self.make_filter_config(
+ include_filter_name=True,
+ filter_type_name='lk')
+
+ def sort_map(self):
+ return self.make_sort_map('id', 'name')
+
+ def grid(self):
+ g = self.make_grid()
+ g.configure(
+ include=[
+ g.id.label("ID"),
+ g.name,
+ ],
+ readonly=True)
+ return g
+
+
+def includeme(config):
+ CustomerGroupsGrid.add_route(config)
diff --git a/rattail/pyramid/views/subdepartments.py b/rattail/pyramid/views/subdepartments.py
new file mode 100644
index 00000000..ae4836be
--- /dev/null
+++ b/rattail/pyramid/views/subdepartments.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+################################################################################
+#
+# Rattail -- Retail Software Framework
+# Copyright © 2010-2012 Lance Edgar
+#
+# This file is part of Rattail.
+#
+# Rattail is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Affero General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Rattail. If not, see .
+#
+################################################################################
+
+"""
+``rattail.pyramid.views.subdepartments`` -- Subdepartment Views
+"""
+
+from edbob.pyramid.views import SearchableAlchemyGridView, AlchemyGridView
+
+import rattail
+
+
+class SubdepartmentsGrid(SearchableAlchemyGridView):
+
+ mapped_class = rattail.Subdepartment
+ route_name = 'subdepartments'
+ route_url = '/subdepartments'
+ renderer = '/subdepartments/index.mako'
+ permission = 'subdepartments.list'
+ sort = 'name'
+
+ def filter_map(self):
+ return self.make_filter_map(ilike=['name'])
+
+ def filter_config(self):
+ return self.make_filter_config(
+ include_filter_name=True,
+ filter_type_name='lk')
+
+ def sort_map(self):
+ return self.make_sort_map('number', 'name')
+
+ def grid(self):
+ g = self.make_grid()
+ g.configure(
+ include=[
+ g.number,
+ g.name,
+ ],
+ readonly=True)
+ return g
+
+
+def includeme(config):
+ SubdepartmentsGrid.add_route(config)