Skip to content
This repository has been archived by the owner on Feb 8, 2018. It is now read-only.

plumb payroll permissions #4010

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion gratipay/models/team/__init__.py
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
from aspen import json, log
from gratipay.exceptions import InvalidTeamName
from gratipay.models import add_event
from gratipay.models.team import mixins
from postgres.orm import Model

from gratipay.billing.exchanges import MINIMUM_CHARGE
@@ -30,7 +31,7 @@ def slugize(name):
return slug


class Team(Model):
class Team(Model, mixins.Payroll):
"""Represent a Gratipay team.
"""

3 changes: 3 additions & 0 deletions gratipay/models/team/mixins/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .payroll import PayrollMixin as Payroll

__all__ = ['Payroll']
7 changes: 7 additions & 0 deletions gratipay/models/team/mixins/payroll.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from __future__ import absolute_import, division, print_function, unicode_literals


class PayrollMixin(object):
"""This mixing provides management of payroll for
:py:class:`~gratipay.models.team.Team` objects.
"""
11 changes: 11 additions & 0 deletions tests/py/test_team_payroll.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from __future__ import absolute_import, division, print_function, unicode_literals

from gratipay.testing import Harness
from gratipay.models.team import mixins


class Tests(Harness):

def test_team_object_subclasses_payroll_mixin(self):
enterprise = self.make_team('The Enterprise')
assert isinstance(enterprise, mixins.Payroll)