Source code for vulyk.cli
# -*- coding: utf-8 -*-
"""
The package consists of modules hat provide support for different aspects of
project's CLI.
"""
from vulyk.models.user import Group, User
[docs]def project_init(allowed_types) -> None:
"""
The method reassures that a default group is already available,
otherwise it will be created and passed task types are to be made
accessible to the group.
:param allowed_types: Task type names to be allowed to default group.
:type allowed_types: list[str]
"""
gr_key = 'default'
if is_initialized(gr_key) and \
list(allowed_types) == Group.objects.get(id=gr_key).allowed_types:
return
group = Group(
id=gr_key,
description='default group',
allowed_types=allowed_types)
group.save()
User.objects.update(add_to_set__groups=group)
[docs]def is_initialized(default_key='default') -> bool:
"""
The method checks whether the default group has been created already or
has not.
:param default_key: Default group ID
:type default_key: str
:returns: A boolean flag
:rtype: bool
"""
return Group.objects(id=default_key).count() == 1