diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a3f31ff2c..c0e684682 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,10 @@ Change Log pykechain changelog +1.11 (UNRELEASED) +----------------- + * Added the ability to retrieve a list of project members and managers with the ``Scope.get_members()` method (#169) + 1.10.3 (28AUG17) ---------------- * Corrected the creation of partmodels (`Part` with category `MODEL`) with multiplicities other than `ZERO_MANY` as the provided multiplicity option was not respected in the `create_model()` method of `Client` and `Scope`. Thanks @raduiordache for the find. (#170) diff --git a/pykechain/models/scope.py b/pykechain/models/scope.py index bb57ec2d0..25456897c 100644 --- a/pykechain/models/scope.py +++ b/pykechain/models/scope.py @@ -71,16 +71,17 @@ def get_members(self, is_manager=None): """ Retrieve members of the scope. - :param is_manager: True to return only Scope members that are also managers. Defaults to False. - :return: List of members + :param is_manager: (optional) set to True to return only Scope members that are also managers. + :return: List of members (usernames) Examples -------- - >>> managers = client.scope('Bike Project').get_members(is_manager=True) - + >>> members = project.get_members() + >>> managers = project.get_members(is_manager=True) + """ - if is_manager: - members = [member for member in self._json_data['members'] if member['is_active'] and member['is_manager']] + if not is_manager: + return [member for member in self._json_data['members'] if member['is_active']] else: - members = [member for member in self._json_data['members'] if member['is_active']] - return members + return [member for member in self._json_data['members'] if + member.get('is_active', False) and member.get('is_manager', False)]