コード例 #1
0
ファイル: case.py プロジェクト: grigouze/pyvac
class UnauthenticatedViewTestCase(TestCase):

    def setUp(self):
        from pyvac.config import includeme
        from .conf import settings
        super(UnauthenticatedViewTestCase, self).setUp()
        self.maxDiff = None
        # authz_policy = ACLAuthorizationPolicy()
        self.config = testing.setUp(settings=settings)
        self.config.include(includeme)
        self.session = DBSession()
        transaction.begin()

    def tearDown(self):
        super(UnauthenticatedViewTestCase, self).tearDown()
        self.session.flush()
        transaction.commit()
        testing.tearDown()

    def create_request(self, params=None, environ=None, matchdict=None,
                       headers=None, path='/', cookies=None, post=None, **kw):
        if params and not isinstance(params, MultiDict):
            mparams = MultiDict()
            for k, v in params.items():
                if hasattr(v, '__iter__'):
                    [mparams.add(k, vv) for vv in v]
                else:
                    mparams.add(k, v)
                params = mparams
        rv = DummyRequest(params, environ, headers, path, cookies,
                          post, matchdict=(matchdict or {}), **kw)
        return rv

    def assertIsRedirect(self, view):
        self.assertIsInstance(view, HTTPFound)
コード例 #2
0
ファイル: case.py プロジェクト: joaquinmorenoa/pyvac
class UnauthenticatedViewTestCase(TestCase):

    mocks = []

    def __init__(self, methodName='runTest'):
        super(UnauthenticatedViewTestCase, self).__init__(methodName)
        # pylint: disable=W0142
        self.mocks = [patch(*mock_args) for mock_args in self.mocks]
        self.maxDiff = None

    def setUp(self):
        from pyvac.config import includeme
        from .conf import settings
        super(UnauthenticatedViewTestCase, self).setUp()
        self.maxDiff = None
        # authz_policy = ACLAuthorizationPolicy()
        self.config = testing.setUp(settings=settings)
        self.config.include(includeme)
        self.session = DBSession()
        transaction.begin()

        for dummy in self.mocks:
            dummy.start()

    def tearDown(self):
        super(UnauthenticatedViewTestCase, self).tearDown()
        self.session.flush()
        transaction.commit()
        testing.tearDown()

        for dummy in reversed(self.mocks):
            dummy.stop()

    def create_request(self,
                       params=None,
                       environ=None,
                       matchdict=None,
                       headers=None,
                       path='/',
                       cookies=None,
                       post=None,
                       **kw):
        if params and not isinstance(params, MultiDict):
            mparams = MultiDict()
            for k, v in params.items():
                mparams.add(k, v)
                params = mparams

        rv = DummyRequest(params,
                          environ,
                          headers,
                          path,
                          cookies,
                          post,
                          matchdict=(matchdict or {}),
                          **kw)
        return rv

    def assertIsRedirect(self, view):
        self.assertIsInstance(view, HTTPFound)
コード例 #3
0
ファイル: replay.py プロジェクト: doyousoft/pyvac
def replay(settings):

    with open(settings["pyvac.celery.yaml"]) as fdesc:
        Conf = yaml.load(fdesc, YAMLLoader)
    caldav_url = Conf.get("caldav").get("url")

    # XXX Register the database
    create_engine(settings, scoped=True)
    session = DBSession()

    calendar = get_calendar(caldav_url)
    requests = Request.find(session, where=(Request.status == "APPROVED_ADMIN",), order_by=Request.user_id)
    print "total requests", len(requests)
    print ""

    req_to_add = []

    # for each requests
    for req in requests:
        print "-" * 10
        print req.id, req.summarycal, req.date_from, req.date_to
        # check if entry in caldav exists
        results = calendar.date_search(req.date_from, req.date_to)
        if not results:
            # need to add missing entry in caldav
            print "need to insert request"
            req_to_add.append(req.id)
        else:
            summaries = []
            for event in results:
                try:
                    parse_event(event)
                except Exception:
                    continue
                event.load()
                # XXX: if needed to delete entries
                # uid = event.instance.vevent.uid.value
                # ics = '%s/%s.ics' % (caldav_url, uid)
                # print delFromCal(caldav_url, ics)
                summary = event.instance.vevent.summary.value
                summaries.append(summary)
            if req.summarycal not in summaries:
                print "need to insert request"
                req_to_add.append(req.id)

    for req_id in set(req_to_add):
        req = Request.by_id(session, req_id)
        print "processing", req.id, req.summarycal, req.date_from, req.date_to
        ics_url = addToCal(caldav_url, req.date_from, req.date_to, req.summarycal)
        # save ics url in request
        req.ics_url = ics_url
        session.add(req)

    session.flush()
    transaction.commit()
コード例 #4
0
ファイル: case.py プロジェクト: lansolo99/pyvac
    def setUp(self):
        from pyvac.config import includeme
        from .conf import settings
        super(UnauthenticatedViewTestCase, self).setUp()
        self.maxDiff = None
        # authz_policy = ACLAuthorizationPolicy()
        self.config = testing.setUp(settings=settings)
        self.config.include(includeme)
        self.session = DBSession()
        transaction.begin()

        for dummy in self.mocks:
            dummy.start()
コード例 #5
0
ファイル: heartbeat.py プロジェクト: lansolo99/pyvac
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        # process pool life cycle
        self.process_pool_cycle(session)
        # process user pool increment
        self.process_pool_increment(session)

        session.flush()
        transaction.commit()

        return True
コード例 #6
0
ファイル: poller.py プロジェクト: lansolo99/pyvac
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        req_accepted_notified = Request.by_status(session,
                                                  'ACCEPTED_MANAGER',
                                                  notified=True)
        self.log.info('number of ACCEPTED_NOTIFIED requests: %d' %
                      len(req_accepted_notified))

        req_list = []
        req_list.extend(req_accepted_notified)

        for req in req_list:
            self.log.info('selecting task for req type %r' % req.status)

            check_status = req.status
            if req.status == 'ACCEPTED_MANAGER' and req.notified:
                check_status = 'ACCEPTED_NOTIFIED'

            req_task = self.worker_tasks[check_status]
            self.log.info('task selected %r' % req_task.name)

            data = {
                'req_id': req.id,
            }

            async_result = subtask(req_task).delay(data=data)
            self.log.info('task scheduled %r' % async_result)

        return True
コード例 #7
0
    def authenticated_userid(self, request):

        auth = request.environ.get('HTTP_AUTHORIZATION')
        try:
            authmeth, auth = auth.split(' ', 1)
        except AttributeError as ValueError:  # not enough values to unpack
            return None

        if authmeth.lower() != 'basic':
            return None

        try:
            # Python 3's string is already unicode
            auth = auth.strip().decode('base64')
            if sys.version_info[0] == 2:
                auth = unicode(auth)
        except binascii.Error:  # can't decode
            return None
        try:
            login, password = auth.split(':', 1)
        except ValueError:  # not enough values to unpack
            return None

        if User.by_credentials(DBSession(), login, password):
            return login

        return None
コード例 #8
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    settings = get_appsettings(config_uri)
    engine = create_engine('pyvac', settings, scoped=False)

    config = Configurator(settings=settings)
    config.end()

    from pyvac.models import (Base, Permission, Group, User, Request,
                              Countries, VacationType, PasswordRecovery,
                              Sudoer, CPVacation, RTTVacation,
                              RequestHistory)

    session = DBSession()
    try:
        from IPython import embed
        from IPython.config.loader import Config
        cfg = Config()
        cfg.InteractiveShellEmbed.confirm_exit = False
        embed(config=cfg, banner1="Welcome to pyvac shell.")
    except ImportError:
        import code
        code.interact("pyvac shell", local=locals())
コード例 #9
0
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        # init conf
        conf = ConfCache()
        remconf = conf.get('reminder', {}).get('trial_thresholds', {})
        self.countries = remconf.get('countries')
        self.trial_thresholds = remconf.get('values')
        self.subject = conf.get('reminder', {}).get('subject', 'Reminder')

        self.log.info('reminder conf: %s / %s' %
                      (self.countries, self.trial_thresholds))

        if not self.countries or not self.trial_thresholds:
            self.log.error('configuration is missing for trial reminder.')
            return False

        datas = [self.get_data(session, country) for country in self.countries]

        # flatten the list
        datas = [item for sublist in datas for item in sublist]
        self.log.info('number of reminders to send: %d' % len(datas))

        for data in datas:
            async_result = subtask(WorkerTrialReminder).delay(data=data)
            self.log.info('task reminder scheduled %r' % async_result)

        return True
コード例 #10
0
ファイル: case.py プロジェクト: grigouze/pyvac
 def setUp(self):
     from pyvac.config import includeme
     from .conf import settings
     super(UnauthenticatedViewTestCase, self).setUp()
     self.maxDiff = None
     # authz_policy = ACLAuthorizationPolicy()
     self.config = testing.setUp(settings=settings)
     self.config.include(includeme)
     self.session = DBSession()
     transaction.begin()
コード例 #11
0
ファイル: importldap.py プロジェクト: doyousoft/pyvac
def populate(engine, ldap):
    """ Retrieve users from ldap directory and import them in local database
    """

    session = DBSession()

    # retrieve managers from dedicated group
    managers = ldap.list_manager()

    # retrieve users
    searchFilter = '(&(objectClass=inetOrgPerson)(employeetype=Employee))'
    required = ['objectClass', 'employeeType', 'cn', 'givenName', 'sn',
                'manager', 'mail', 'ou', 'uid', 'userPassword']

    users = ldap._search(searchFilter, required)
    for user_dn, user_entry in users:
        user_data = ldap.parse_ldap_entry(user_dn, user_entry)
        login = user_data['login'].decode('utf-8')
        # check what type of user it is
        group = u'user'
        # if it's a manager he should be in manager group
        if user_data['dn'] in managers:
            group = u'manager'
        # if it's an admin he should be in admin group
        what = '(member=%s)' % user_data['dn']
        if len(ldap._search_admin(what, None)) > 0:
            group = u'admin'

        user = User.by_login(session, login)
        if not user:
            user = User.create_from_ldap(session, user_data, group)
        else:
            # update user with ldap informations in case it changed
            user.email = user_data['email'].decode('utf-8')
            user.firstname = user_data['firstname'].decode('utf-8')
            user.lastname = user_data['lastname'].decode('utf-8')
            user.manager_dn = user_data['manager_dn'].decode('utf-8')
            user.dn = user_data['dn'].decode('utf-8')
            user.role = group

        session.add(user)

    session.commit()
コード例 #12
0
ファイル: replay.py プロジェクト: lansolo99/pyvac
def replay(settings):

    with open(settings['pyvac.celery.yaml']) as fdesc:
        Conf = yaml.load(fdesc, YAMLLoader)
    caldav_url = Conf.get('caldav').get('url')

    # XXX Register the database
    create_engine(settings, scoped=True)
    session = DBSession()

    calendar = get_calendar(caldav_url)
    requests = Request.find(session,
                            where=(Request.status == 'APPROVED_ADMIN',),
                            order_by=Request.user_id)
    print 'total requests', len(requests)
    print ''

    req_to_add = []

    # for each requests
    for req in requests:
        print '-' * 10
        print req.id, req.summarycal, req.date_from, req.date_to
        # check if entry in caldav exists
        results = calendar.date_search(req.date_from, req.date_to)
        if not results:
            # need to add missing entry in caldav
            print 'need to insert request'
            req_to_add.append(req.id)
        else:
            summaries = []
            for event in results:
                try:
                    parse_event(event)
                except Exception:
                    continue
                event.load()
                # XXX: if needed to delete entries
                # uid = event.instance.vevent.uid.value
                # ics = '%s/%s.ics' % (caldav_url, uid)
                # print delFromCal(caldav_url, ics)
                summary = event.instance.vevent.summary.value
                summaries.append(summary)
            if req.summarycal not in summaries:
                print 'need to insert request'
                req_to_add.append(req.id)

    for req_id in set(req_to_add):
        req = Request.by_id(session, req_id)
        print 'processing', req.id, req.summarycal, req.date_from, req.date_to
        ics_url = addToCal(caldav_url,
                           req.date_from,
                           req.date_to,
                           req.summarycal)
        # save ics url in request
        req.ics_url = ics_url
        session.add(req)

    session.flush()
    transaction.commit()
コード例 #13
0
ファイル: poller.py プロジェクト: bobquest33/pyvac
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        statuses = [
            'PENDING', 'ACCEPTED_MANAGER', 'DENIED', 'APPROVED_ADMIN',
            'CANCELED', 'ERROR'
        ]
        for status in statuses:
            requests = Request.by_status(session, status)
            self.log.info('number of requests for %s: %d' %
                          (status, len(requests)))

        req_accepted_notified = Request.by_status(session,
                                                  'ACCEPTED_MANAGER',
                                                  notified=True)
        self.log.info('number of ACCEPTED_NOTIFIED requests: %d' %
                      len(req_accepted_notified))

        # req_pending_notified = Request.by_status(session, 'PENDING',
        #                                          notified=True)
        # self.log.info('number of PENDING_NOTIFIED requests: %d' %
        #               len(req_pending_notified))

        req_list = []
        req_list.extend(req_accepted_notified)
        # req_list.extend(req_pending_notified)

        for req in req_list:
            self.log.info('selecting task for req type %r' % req.status)

            check_status = req.status
            if req.status == 'ACCEPTED_MANAGER' and req.notified:
                check_status = 'ACCEPTED_NOTIFIED'
            # if req.status == 'PENDING' and req.notified:
            #     check_status = 'PENDING_NOTIFIED'

            req_task = self.worker_tasks[check_status]
            self.log.info('task selected %r' % req_task.name)

            data = {
                'req_id': req.id,
            }

            async_result = subtask(req_task).delay(data=data)
            self.log.info('task scheduled %r' % async_result)

        return True
コード例 #14
0
ファイル: worker.py プロジェクト: lansolo99/pyvac
    def run(self, *args, **kwargs):
        self.log = log
        self.session = DBSession()
        self.smtp = SmtpCache()
        self.log.debug('using session %r, %r' %
                       (self.session, id(self.session)))

        req = kwargs.get('data')
        # don't log credentials like in caldav.url
        params = req.copy()
        params.pop('caldav.url', None)
        self.log.info('[Task %s]: RECEIVED %r' % (self.name, params))

        self.process(req)

        return True
コード例 #15
0
def locale_negotiator(request):
    """
    Locale negotiator for pyramid views.

    This version differs from Pyramid's :py:func:`default_locale_negotiator
    <pyramid.i18n.default_locale_negotiator>` in that it gets the locale from
    the url parameter or the cookie, and fallbacks to the user's lang.
    """

    login = authenticated_userid(request)
    if login:
        from pyvac.models import DBSession, User
        session = DBSession()
        user = User.by_login(session, login)
        if user.country == 'us':
            return 'en'
        if user.country == 'zh':
            return 'en'
        return user.country

    return None
コード例 #16
0
ファイル: importldap.py プロジェクト: joaquinmorenoa/pyvac
def populate(engine, ldap):
    """ Retrieve users from ldap directory and import them in local database
    """

    session = DBSession()

    # retrieve managers from dedicated group
    managers = ldap.list_manager()

    # retrieve users
    searchFilter = '(&(objectClass=inetOrgPerson)(employeetype=Employee))'
    required = ['objectClass', 'employeeType', 'cn', 'givenName', 'sn',
                'manager', 'mail', 'ou', 'uid', 'userPassword']

    users = ldap._search(searchFilter, required)
    for user_dn, user_entry in users:
        user_data = ldap.parse_ldap_entry(user_dn, user_entry)
        if not user_data or not user_data.get('login'):
            continue
        login = user_data['login'].decode('utf-8')
        # check what type of user it is
        group = 'user'
        # if it's a manager he should be in manager group
        if user_data['dn'] in managers:
            group = 'manager'
        # if it's an admin he should be in admin group
        what = '(member=%s)' % user_data['dn']
        if len(ldap._search_admin(what, None)) > 0:
            group = 'admin'

        user = User.by_login(session, login)
        if not user:
            user = User.create_from_ldap(session, user_data, group)
        else:
            # update user with ldap informations in case it changed
            user.email = user_data['email'].decode('utf-8')
            user.firstname = user_data['firstname'].decode('utf-8')
            user.lastname = user_data['lastname'].decode('utf-8')
            user.manager_dn = user_data['manager_dn'].decode('utf-8')
            user.dn = user_data['dn'].decode('utf-8')
            user.role = group

        session.add(user)

    session.commit()
コード例 #17
0
def populate(engine):
    Base.metadata.create_all(engine)
    session = DBSession()

    vactype = VacationType(name='Télétravail')
    session.add(vactype)

    fr_country = Countries.by_name(session, name='fr')
    lu_country = Countries.by_name(session, name='lu')
    us_country = Countries.by_name(session, name='us')
    zh_country = Countries.by_name(session, name='zh')

    # Remote is available for everyone
    vactype.countries.append(fr_country)
    vactype.countries.append(lu_country)
    vactype.countries.append(us_country)
    vactype.countries.append(zh_country)

    session.commit()
コード例 #18
0
ファイル: install.py プロジェクト: joaquinmorenoa/pyvac
def populate(engine):

    Base.metadata.create_all(engine)
    session = DBSession()

    user_perm = Permission(name='user_view')
    admin_perm = Permission(name='admin_view')
    manager_perm = Permission(name='manager_view')
    sudo_perm = Permission(name='sudo_view')
    session.add(user_perm)
    session.add(admin_perm)
    session.add(manager_perm)
    session.add(sudo_perm)

    admin_group = Group(name='admin')
    admin_group.permissions.append(user_perm)
    admin_group.permissions.append(admin_perm)
    admin_group.permissions.append(manager_perm)
    admin_group.permissions.append(sudo_perm)
    session.add(admin_group)

    manager_group = Group(name='manager')
    manager_group.permissions.append(user_perm)
    manager_group.permissions.append(manager_perm)
    manager_group.permissions.append(sudo_perm)
    session.add(manager_group)

    user_group = Group(name='user')
    user_group.permissions.append(user_perm)
    session.add(user_group)

    sudoer_group = Group(name='sudoer')
    sudoer_group.permissions.append(sudo_perm)
    session.add(sudoer_group)

    vactype1 = VacationType(name='CP')
    session.add(vactype1)
    vactype2 = VacationType(name='RTT')
    session.add(vactype2)
    vactype3 = VacationType(name='Congé Parental')
    session.add(vactype3)
    vactype4 = VacationType(name='Récupération')
    session.add(vactype4)
    vactype5 = VacationType(name='Maladie', visibility='admin')
    session.add(vactype5)
    vactype6 = VacationType(name='Exceptionnel')
    session.add(vactype6)
    vactype7 = VacationType(name='Compensatoire')
    session.add(vactype7)
    vactype8 = VacationType(name='Télétravail')
    session.add(vactype8)

    fr_country = Countries(name='fr')
    session.add(fr_country)
    lu_country = Countries(name='lu')
    session.add(lu_country)
    us_country = Countries(name='us')
    session.add(us_country)
    zh_country = Countries(name='zh')
    session.add(zh_country)

    now = datetime.now()
    cp_pool1 = Pool(name='acquis',
                    date_start=datetime(now.year, 6, 1),
                    date_end=datetime(now.year + 1, 5, 31),
                    status='active',
                    vacation_type=vactype1,
                    country=fr_country,
                    pool_group=1,
                    date_last_increment=now,
                    )
    session.add(cp_pool1)
    cp_pool2 = Pool(name='restant',
                    date_start=datetime(now.year - 1, 6, 1),
                    date_end=datetime(now.year, 5, 31),
                    status='active',
                    vacation_type=vactype1,
                    country=fr_country,
                    pool_group=1,
                    date_last_increment=now,
                    )
    session.add(cp_pool2)
    cplu_pool1 = Pool(name='acquis',
                      alias='légaux',
                      date_start=datetime(now.year, 1, 1),
                      date_end=datetime(now.year + 1, 3, 31),
                      status='active',
                      vacation_type=vactype1,
                      country=lu_country,
                      pool_group=2,
                      date_last_increment=now,
                      )
    session.add(cplu_pool1)
    cplu_pool2 = Pool(name='restant',
                      alias='report',
                      date_start=datetime(now.year - 1, 1, 1),
                      date_end=datetime(now.year, 3, 31),
                      status='active',
                      vacation_type=vactype1,
                      country=lu_country,
                      pool_group=2,
                      date_last_increment=now,
                      )
    session.add(cplu_pool2)
    rtt_pool = Pool(name=vactype2.name,
                    date_start=datetime(now.year, 1, 1),
                    date_end=datetime(now.year + 1, 12, 31),
                    status='active',
                    vacation_type=vactype2,
                    country=fr_country,
                    date_last_increment=now,
                    )
    session.add(rtt_pool)

    # CP is available for everyone
    vactype1.countries.append(fr_country)
    vactype1.countries.append(lu_country)
    vactype1.countries.append(us_country)
    vactype1.countries.append(zh_country)

    # RTT only available for france
    vactype2.countries.append(fr_country)

    # Parental vacation is available for everyone
    vactype3.countries.append(fr_country)
    vactype3.countries.append(lu_country)
    vactype3.countries.append(us_country)
    vactype3.countries.append(zh_country)

    # Recovery is available for everyone
    vactype4.countries.append(fr_country)
    vactype4.countries.append(lu_country)
    vactype4.countries.append(us_country)
    vactype4.countries.append(zh_country)

    # Sickness vacation is available for all countries
    vactype5.countries.append(fr_country)
    vactype5.countries.append(lu_country)
    vactype5.countries.append(us_country)
    vactype5.countries.append(zh_country)

    # Exception vacation is available for all countries
    vactype6.countries.append(fr_country)
    vactype6.countries.append(lu_country)
    vactype6.countries.append(us_country)
    vactype6.countries.append(zh_country)

    # Holiday recovery is only available for LU
    vactype7.countries.append(lu_country)

    # Remote is available for everyone
    vactype8.countries.append(fr_country)
    vactype8.countries.append(lu_country)
    vactype8.countries.append(us_country)
    vactype8.countries.append(zh_country)

    common_password = '******'

    admin = User(login='******',
                 password=common_password,
                 email='*****@*****.**',
                 firstname='The',
                 lastname='Administrator',
                 role='admin',
                 _country=fr_country)
    admin.groups.append(admin_group)
    session.add(admin)

    session.commit()
コード例 #19
0
def setUpModule():

    engine = create_engine(settings)
    populate(engine)

    session = DBSession()
    user_group = Group.by_name(session, 'user')
    manager_group = Group.by_name(session, 'manager')
    sudoer_group = Group.by_name(session, 'sudoer')
    common_password = '******'

    cp_vacation = VacationType.by_name(session, 'CP')
    rtt_vacation = VacationType.by_name(session, 'RTT')
    recovery_vacation = VacationType.by_name(session, 'Récupération')
    sickness_vacation = VacationType.by_name(session, 'Maladie')
    exception_vacation = VacationType.by_name(session, 'Exceptionnel')

    fr_country = Countries.by_name(session, 'fr')
    us_country = Countries.by_name(session, 'us')
    lu_country = Countries.by_name(session, 'lu')

    manager1 = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        firstname='First',
        lastname='Manager',
        role='manager',
        _country=fr_country,
    )
    manager1.groups.append(manager_group)
    session.add(manager1)

    manager2 = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        firstname='Second',
        lastname='Manager',
        role='manager',
        _country=fr_country,
    )
    manager2.groups.append(manager_group)
    session.add(manager2)

    manager_us = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        firstname='Third',
        lastname='Manager',
        role='manager',
        _country=us_country,
    )
    manager_us.groups.append(manager_group)
    session.add(manager_us)

    user1 = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        manager=manager1,
        firstname='John',
        lastname='Doe',
        _country=fr_country,
        registration_number=1337,
    )
    user1.groups.append(user_group)
    session.add(user1)

    user2 = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        manager=manager2,
        firstname='Jane',
        lastname='Doe',
        _country=fr_country,
    )
    user2.groups.append(user_group)
    user2.groups.append(sudoer_group)
    session.add(user2)

    session.flush()
    sudoer = Sudoer(source_id=user2.id, target_id=1)
    session.add(sudoer)

    user3 = User(
        login='******',
        password=common_password,
        email='*****@*****.**',
        manager=manager1,
        firstname='Sarah',
        lastname='Doe',
        _country=lu_country,
    )
    user3.groups.append(user_group)
    session.add(user3)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('14/04/2015', '%d/%m/%Y')
    req1 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=cp_vacation,
                   status='PENDING',
                   user=user1,
                   notified=False)
    session.add(req1)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('21/04/2015', '%d/%m/%Y')
    req2 = Request(
        date_from=date_from,
        date_to=date_to,
        days=10,
        vacation_type=cp_vacation,
        status='PENDING',
        user=user2,
        notified=False,
    )
    session.add(req2)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req3 = Request(
        date_from=date_from,
        date_to=date_to,
        days=5,
        vacation_type=rtt_vacation,
        status='ACCEPTED_MANAGER',
        user=user1,
        notified=True,
    )
    session.add(req3)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req4 = Request(
        date_from=date_from,
        date_to=date_to,
        days=5,
        vacation_type=rtt_vacation,
        status='CANCELED',
        user=user1,
        notified=True,
    )
    session.add(req4)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req5 = Request(
        date_from=date_from,
        date_to=date_to,
        days=5,
        vacation_type=rtt_vacation,
        status='APPROVED_ADMIN',
        user=manager_us,
        notified=True,
    )
    session.add(req5)

    date_from = datetime.strptime('24/08/2011', '%d/%m/%Y')
    date_to = datetime.strptime('24/08/2011', '%d/%m/%Y')
    req6 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status='APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label='AM')
    session.add(req6)

    date_from = datetime.strptime('14/07/2014', '%d/%m/%Y')
    date_to = datetime.strptime('14/07/2014', '%d/%m/%Y')
    req7 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status='APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label='AM')
    session.add(req7)

    # used for rtt vacation checks

    date_from = datetime.strptime('01/04/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/04/2016', '%d/%m/%Y')
    req8 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status='PENDING',
                   user=user1,
                   notified=True)
    session.add(req8)

    date_from = datetime.strptime('01/03/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/03/2016', '%d/%m/%Y')
    req9 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status='ACCEPTED_MANAGER',
                   user=user1,
                   notified=True)
    session.add(req9)

    date_from = datetime.strptime('01/02/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/02/2016', '%d/%m/%Y')
    req10 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=rtt_vacation,
                    status='APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req10)

    date_from = datetime.strptime('01/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/06/2016', '%d/%m/%Y')
    req11 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=recovery_vacation,
                    status='APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req11)

    date_from = datetime.strptime('12/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('12/04/2015', '%d/%m/%Y')
    req12 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=rtt_vacation,
                    status='DENIED',
                    user=user1,
                    notified=True)
    session.add(req12)

    date_from = datetime.strptime('06/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('06/06/2016', '%d/%m/%Y')
    req13 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=sickness_vacation,
                    status='APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req13)

    date_from = datetime.strptime('13/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('13/06/2016', '%d/%m/%Y')
    req14 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=exception_vacation,
                    status='APPROVED_ADMIN',
                    user=user2,
                    message="I need to see Star Wars, I'm a huge fan",
                    notified=True)
    session.add(req14)

    session.commit()
コード例 #20
0
ファイル: install.py プロジェクト: doyousoft/pyvac
def populate(engine):

    Base.metadata.create_all(engine)
    session = DBSession()

    user_perm = Permission(name=u"user_view")
    admin_perm = Permission(name=u"admin_view")
    manager_perm = Permission(name=u"manager_view")
    sudo_perm = Permission(name=u"sudo_view")
    session.add(user_perm)
    session.add(admin_perm)
    session.add(manager_perm)
    session.add(sudo_perm)

    admin_group = Group(name=u"admin")
    admin_group.permissions.append(user_perm)
    admin_group.permissions.append(admin_perm)
    admin_group.permissions.append(manager_perm)
    admin_group.permissions.append(sudo_perm)
    session.add(admin_group)

    manager_group = Group(name=u"manager")
    manager_group.permissions.append(user_perm)
    manager_group.permissions.append(manager_perm)
    manager_group.permissions.append(sudo_perm)
    session.add(manager_group)

    user_group = Group(name=u"user")
    user_group.permissions.append(user_perm)
    session.add(user_group)

    sudoer_group = Group(name=u"sudoer")
    sudoer_group.permissions.append(sudo_perm)
    session.add(sudoer_group)

    vactype1 = VacationType(name=u"CP")
    session.add(vactype1)
    vactype2 = VacationType(name=u"RTT")
    session.add(vactype2)
    vactype3 = VacationType(name=u"Congé Parental")
    session.add(vactype3)
    vactype4 = VacationType(name=u"Récupération")
    session.add(vactype4)
    vactype5 = VacationType(name=u"Maladie", visibility=u"admin")
    session.add(vactype5)
    vactype6 = VacationType(name=u"Exceptionnel")
    session.add(vactype6)

    fr_country = Countries(name=u"fr")
    session.add(fr_country)
    lu_country = Countries(name=u"lu")
    session.add(lu_country)
    us_country = Countries(name=u"us")
    session.add(us_country)
    zh_country = Countries(name=u"zh")
    session.add(zh_country)

    # CP is available for everyone
    vactype1.countries.append(fr_country)
    vactype1.countries.append(lu_country)
    vactype1.countries.append(us_country)
    vactype1.countries.append(zh_country)

    # RTT only available for france
    vactype2.countries.append(fr_country)

    # Parental vacation is available for everyone
    vactype3.countries.append(fr_country)
    vactype3.countries.append(lu_country)
    vactype3.countries.append(us_country)
    vactype3.countries.append(zh_country)

    # Recovery is available for everyone
    vactype4.countries.append(fr_country)
    vactype4.countries.append(lu_country)
    vactype4.countries.append(us_country)
    vactype4.countries.append(zh_country)

    # Sickness vacation is available for all countries
    vactype5.countries.append(fr_country)
    vactype5.countries.append(lu_country)
    vactype5.countries.append(us_country)
    vactype5.countries.append(zh_country)

    # Exception vacation is available for all countries
    vactype6.countries.append(fr_country)
    vactype6.countries.append(lu_country)
    vactype6.countries.append(us_country)
    vactype6.countries.append(zh_country)

    common_password = u"changeme"

    admin = User(
        login=u"admin",
        password=common_password,
        email=u"*****@*****.**",
        firstname=u"The",
        lastname=u"Administrator",
        role=u"admin",
        _country=fr_country,
    )
    admin.groups.append(admin_group)
    session.add(admin)

    session.commit()
コード例 #21
0
def populate(engine):

    session = DBSession()

    cp = VacationType.by_id(session, 1)
    rtt = VacationType.by_id(session, 2)
    parent = VacationType.by_id(session, 3)

    fr_country = Countries.by_name(session, u'fr')
    session.add(fr_country)
    lu_country = Countries.by_name(session, u'lu')
    session.add(lu_country)
    us_country = Countries.by_name(session, u'us')
    session.add(us_country)
    zh_country = Countries.by_name(session, u'zh')
    session.add(zh_country)

    # CP is available for everyone
    cp.countries.append(fr_country)
    cp.countries.append(lu_country)
    cp.countries.append(us_country)
    cp.countries.append(zh_country)

    # RTT only available for france
    rtt.countries.append(fr_country)

    # parent is available for everyone
    parent.countries.append(fr_country)
    parent.countries.append(lu_country)
    parent.countries.append(us_country)
    parent.countries.append(zh_country)

    session.commit()
コード例 #22
0
ファイル: install.py プロジェクト: bobquest33/pyvac
def populate(engine):

    Base.metadata.create_all(engine)
    session = DBSession()

    user_perm = Permission(name=u'user_view')
    admin_perm = Permission(name=u'admin_view')
    manager_perm = Permission(name=u'manager_view')
    sudo_perm = Permission(name=u'sudo_view')
    session.add(user_perm)
    session.add(admin_perm)
    session.add(manager_perm)
    session.add(sudo_perm)

    admin_group = Group(name=u'admin')
    admin_group.permissions.append(user_perm)
    admin_group.permissions.append(admin_perm)
    admin_group.permissions.append(manager_perm)
    admin_group.permissions.append(sudo_perm)
    session.add(admin_group)

    manager_group = Group(name=u'manager')
    manager_group.permissions.append(user_perm)
    manager_group.permissions.append(manager_perm)
    manager_group.permissions.append(sudo_perm)
    session.add(manager_group)

    user_group = Group(name=u'user')
    user_group.permissions.append(user_perm)
    session.add(user_group)

    sudoer_group = Group(name=u'sudoer')
    sudoer_group.permissions.append(sudo_perm)
    session.add(sudoer_group)

    vactype1 = VacationType(name=u'CP')
    session.add(vactype1)
    vactype2 = VacationType(name=u'RTT')
    session.add(vactype2)
    vactype3 = VacationType(name=u'Congé Parental')
    session.add(vactype3)
    vactype4 = VacationType(name=u'Récupération')
    session.add(vactype4)
    vactype5 = VacationType(name=u'Maladie', visibility=u'admin')
    session.add(vactype5)
    vactype6 = VacationType(name=u'Exceptionnel')
    session.add(vactype6)
    vactype7 = VacationType(name=u'Compensatoire')
    session.add(vactype7)

    fr_country = Countries(name=u'fr')
    session.add(fr_country)
    lu_country = Countries(name=u'lu')
    session.add(lu_country)
    us_country = Countries(name=u'us')
    session.add(us_country)
    zh_country = Countries(name=u'zh')
    session.add(zh_country)

    # CP is available for everyone
    vactype1.countries.append(fr_country)
    vactype1.countries.append(lu_country)
    vactype1.countries.append(us_country)
    vactype1.countries.append(zh_country)

    # RTT only available for france
    vactype2.countries.append(fr_country)

    # Parental vacation is available for everyone
    vactype3.countries.append(fr_country)
    vactype3.countries.append(lu_country)
    vactype3.countries.append(us_country)
    vactype3.countries.append(zh_country)

    # Recovery is available for everyone
    vactype4.countries.append(fr_country)
    vactype4.countries.append(lu_country)
    vactype4.countries.append(us_country)
    vactype4.countries.append(zh_country)

    # Sickness vacation is available for all countries
    vactype5.countries.append(fr_country)
    vactype5.countries.append(lu_country)
    vactype5.countries.append(us_country)
    vactype5.countries.append(zh_country)

    # Exception vacation is available for all countries
    vactype6.countries.append(fr_country)
    vactype6.countries.append(lu_country)
    vactype6.countries.append(us_country)
    vactype6.countries.append(zh_country)

    # Holiday recovery is only available for LU
    vactype7.countries.append(lu_country)

    common_password = u'changeme'

    admin = User(login=u'admin',
                 password=common_password,
                 email=u'*****@*****.**',
                 firstname=u'The',
                 lastname=u'Administrator',
                 role=u'admin',
                 _country=fr_country)
    admin.groups.append(admin_group)
    session.add(admin)

    session.commit()
コード例 #23
0
def populate(engine):

    session = DBSession()

    cp = VacationType.by_id(session, 1)
    rtt = VacationType.by_id(session, 2)
    parent = VacationType.by_id(session, 3)
    recovery = VacationType.by_id(session, 4)

    fr_country = Countries.by_name(session, 'fr')
    session.add(fr_country)
    lu_country = Countries.by_name(session, 'lu')
    session.add(lu_country)
    us_country = Countries.by_name(session, 'us')
    session.add(us_country)
    zh_country = Countries.by_name(session, 'zh')
    session.add(zh_country)

    # CP is available for everyone
    cp.countries.append(fr_country)
    cp.countries.append(lu_country)
    cp.countries.append(us_country)
    cp.countries.append(zh_country)

    # RTT only available for france
    rtt.countries.append(fr_country)

    # parent is available for everyone
    parent.countries.append(fr_country)
    parent.countries.append(lu_country)
    parent.countries.append(us_country)
    parent.countries.append(zh_country)

    # recovery is available for everyone
    recovery.countries.append(fr_country)
    recovery.countries.append(lu_country)
    recovery.countries.append(us_country)
    recovery.countries.append(zh_country)

    session.commit()
コード例 #24
0
ファイル: __init__.py プロジェクト: baloo/pyvac
def setUpModule():

    engine = create_engine(settings)
    populate(engine)

    session = DBSession()
    user_group = Group.by_name(session, u'user')
    manager_group = Group.by_name(session, u'manager')
    common_password = u'changeme'

    cp_vacation = VacationType.by_name(session, u'CP')
    rtt_vacation = VacationType.by_name(session, u'RTT')

    fr_country = Countries.by_name(session, u'fr')
    us_country = Countries.by_name(session, u'us')

    manager1 = User(login=u'manager1',
                    password=common_password,
                    email=u'*****@*****.**',
                    firstname=u'First',
                    lastname=u'Manager',
                    role=u'manager',
                    _country=fr_country,
                    )
    manager1.groups.append(manager_group)
    session.add(manager1)

    manager2 = User(login=u'manager2',
                    password=common_password,
                    email=u'*****@*****.**',
                    firstname=u'Second',
                    lastname=u'Manager',
                    role=u'manager',
                    _country=fr_country,
                    )
    manager2.groups.append(manager_group)
    session.add(manager2)

    manager_us = User(login=u'manager3',
                      password=common_password,
                      email=u'*****@*****.**',
                      firstname=u'Third',
                      lastname=u'Manager',
                      role=u'manager',
                      _country=us_country,
                      )
    manager_us.groups.append(manager_group)
    session.add(manager_us)

    user1 = User(login=u'jdoe',
                 password=common_password,
                 email=u'*****@*****.**',
                 manager=manager1,
                 firstname=u'John',
                 lastname=u'Doe',
                 _country=fr_country,
                 )
    user1.groups.append(user_group)
    session.add(user1)

    user2 = User(login=u'janedoe',
                 password=common_password,
                 email=u'*****@*****.**',
                 manager=manager2,
                 firstname=u'Jane',
                 lastname=u'Doe',
                 _country=fr_country,
                 )
    user2.groups.append(user_group)
    session.add(user2)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('14/04/2015', '%d/%m/%Y')
    req1 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=cp_vacation,
                   status=u'PENDING',
                   user=user1,
                   notified=False)
    session.add(req1)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('21/04/2015', '%d/%m/%Y')
    req2 = Request(date_from=date_from,
                   date_to=date_to,
                   days=10,
                   vacation_type=cp_vacation,
                   status=u'PENDING',
                   user=user2,
                   notified=False,)
    session.add(req2)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req3 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'ACCEPTED_MANAGER',
                   user=user1,
                   notified=True,)
    session.add(req3)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req4 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'CANCELED',
                   user=user1,
                   notified=True,)
    session.add(req4)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req5 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=manager_us,
                   notified=True,)
    session.add(req5)

    date_from = datetime.strptime('24/08/2011', '%d/%m/%Y')
    date_to = datetime.strptime('24/08/2011', '%d/%m/%Y')
    req6 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label=u'AM')
    session.add(req6)

    date_from = datetime.strptime('14/07/2014', '%d/%m/%Y')
    date_to = datetime.strptime('14/07/2014', '%d/%m/%Y')
    req7 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label=u'AM')
    session.add(req7)

    # used for rtt vacation checks

    date_from = datetime.strptime('01/04/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/04/2016', '%d/%m/%Y')
    req8 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status=u'PENDING',
                   user=user1,
                   notified=True)
    session.add(req8)

    date_from = datetime.strptime('01/03/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/03/2016', '%d/%m/%Y')
    req9 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status=u'ACCEPTED_MANAGER',
                   user=user1,
                   notified=True)
    session.add(req9)

    date_from = datetime.strptime('01/02/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/02/2016', '%d/%m/%Y')
    req10 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=rtt_vacation,
                    status=u'APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req10)

    session.commit()
コード例 #25
0
ファイル: __init__.py プロジェクト: doyousoft/pyvac
def setUpModule():

    engine = create_engine(settings)
    populate(engine)

    session = DBSession()
    user_group = Group.by_name(session, u'user')
    manager_group = Group.by_name(session, u'manager')
    sudoer_group = Group.by_name(session, u'sudoer')
    common_password = u'changeme'

    cp_vacation = VacationType.by_name(session, u'CP')
    rtt_vacation = VacationType.by_name(session, u'RTT')
    recovery_vacation = VacationType.by_name(session, u'Récupération')
    sickness_vacation = VacationType.by_name(session, u'Maladie')
    exception_vacation = VacationType.by_name(session, u'Exceptionnel')

    fr_country = Countries.by_name(session, u'fr')
    us_country = Countries.by_name(session, u'us')

    manager1 = User(login=u'manager1',
                    password=common_password,
                    email=u'*****@*****.**',
                    firstname=u'First',
                    lastname=u'Manager',
                    role=u'manager',
                    _country=fr_country,
                    )
    manager1.groups.append(manager_group)
    session.add(manager1)

    manager2 = User(login=u'manager2',
                    password=common_password,
                    email=u'*****@*****.**',
                    firstname=u'Second',
                    lastname=u'Manager',
                    role=u'manager',
                    _country=fr_country,
                    )
    manager2.groups.append(manager_group)
    session.add(manager2)

    manager_us = User(login=u'manager3',
                      password=common_password,
                      email=u'*****@*****.**',
                      firstname=u'Third',
                      lastname=u'Manager',
                      role=u'manager',
                      _country=us_country,
                      )
    manager_us.groups.append(manager_group)
    session.add(manager_us)

    user1 = User(login=u'jdoe',
                 password=common_password,
                 email=u'*****@*****.**',
                 manager=manager1,
                 firstname=u'John',
                 lastname=u'Doe',
                 _country=fr_country,
                 )
    user1.groups.append(user_group)
    session.add(user1)

    user2 = User(login=u'janedoe',
                 password=common_password,
                 email=u'*****@*****.**',
                 manager=manager2,
                 firstname=u'Jane',
                 lastname=u'Doe',
                 _country=fr_country,
                 )
    user2.groups.append(user_group)
    user2.groups.append(sudoer_group)
    session.add(user2)

    session.flush()
    sudoer = Sudoer(source_id=user2.id, target_id=1)
    session.add(sudoer)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('14/04/2015', '%d/%m/%Y')
    req1 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=cp_vacation,
                   status=u'PENDING',
                   user=user1,
                   notified=False)
    session.add(req1)

    date_from = datetime.strptime('10/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('21/04/2015', '%d/%m/%Y')
    req2 = Request(date_from=date_from,
                   date_to=date_to,
                   days=10,
                   vacation_type=cp_vacation,
                   status=u'PENDING',
                   user=user2,
                   notified=False,)
    session.add(req2)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req3 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'ACCEPTED_MANAGER',
                   user=user1,
                   notified=True,)
    session.add(req3)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req4 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'CANCELED',
                   user=user1,
                   notified=True,)
    session.add(req4)

    date_from = datetime.strptime('24/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('28/04/2015', '%d/%m/%Y')
    req5 = Request(date_from=date_from,
                   date_to=date_to,
                   days=5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=manager_us,
                   notified=True,)
    session.add(req5)

    date_from = datetime.strptime('24/08/2011', '%d/%m/%Y')
    date_to = datetime.strptime('24/08/2011', '%d/%m/%Y')
    req6 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label=u'AM')
    session.add(req6)

    date_from = datetime.strptime('14/07/2014', '%d/%m/%Y')
    date_to = datetime.strptime('14/07/2014', '%d/%m/%Y')
    req7 = Request(date_from=date_from,
                   date_to=date_to,
                   days=0.5,
                   vacation_type=rtt_vacation,
                   status=u'APPROVED_ADMIN',
                   user=user1,
                   notified=True,
                   label=u'AM')
    session.add(req7)

    # used for rtt vacation checks

    date_from = datetime.strptime('01/04/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/04/2016', '%d/%m/%Y')
    req8 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status=u'PENDING',
                   user=user1,
                   notified=True)
    session.add(req8)

    date_from = datetime.strptime('01/03/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/03/2016', '%d/%m/%Y')
    req9 = Request(date_from=date_from,
                   date_to=date_to,
                   days=1,
                   vacation_type=rtt_vacation,
                   status=u'ACCEPTED_MANAGER',
                   user=user1,
                   notified=True)
    session.add(req9)

    date_from = datetime.strptime('01/02/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/02/2016', '%d/%m/%Y')
    req10 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=rtt_vacation,
                    status=u'APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req10)

    date_from = datetime.strptime('01/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('02/06/2016', '%d/%m/%Y')
    req11 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=recovery_vacation,
                    status=u'APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req11)

    date_from = datetime.strptime('12/04/2015', '%d/%m/%Y')
    date_to = datetime.strptime('12/04/2015', '%d/%m/%Y')
    req12 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=rtt_vacation,
                    status=u'DENIED',
                    user=user1,
                    notified=True)
    session.add(req12)

    date_from = datetime.strptime('06/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('06/06/2016', '%d/%m/%Y')
    req13 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=sickness_vacation,
                    status=u'APPROVED_ADMIN',
                    user=user1,
                    notified=True)
    session.add(req13)

    date_from = datetime.strptime('13/06/2016', '%d/%m/%Y')
    date_to = datetime.strptime('13/06/2016', '%d/%m/%Y')
    req14 = Request(date_from=date_from,
                    date_to=date_to,
                    days=1,
                    vacation_type=exception_vacation,
                    status=u'APPROVED_ADMIN',
                    user=user2,
                    message=u"I need to see Star Wars, I'm a huge fan",
                    notified=True)
    session.add(req14)

    session.commit()
コード例 #26
0
ファイル: install.py プロジェクト: grigouze/pyvac
def populate(engine):

    Base.metadata.create_all(engine)
    session = DBSession()

    user_perm = Permission(name=u'user_view')
    admin_perm = Permission(name=u'admin_view')
    manager_perm = Permission(name=u'manager_view')
    session.add(user_perm)
    session.add(admin_perm)
    session.add(manager_perm)

    admin_group = Group(name=u'admin')
    admin_group.permissions.append(user_perm)
    admin_group.permissions.append(admin_perm)
    admin_group.permissions.append(manager_perm)
    session.add(admin_group)

    manager_group = Group(name=u'manager')
    manager_group.permissions.append(user_perm)
    manager_group.permissions.append(manager_perm)
    session.add(manager_group)

    user_group = Group(name=u'user')
    user_group.permissions.append(user_perm)
    session.add(user_group)

    vactype1 = VacationType(name=u'CP')
    session.add(vactype1)
    vactype2 = VacationType(name=u'RTT')
    session.add(vactype2)

    fr_country = Countries(name=u'fr')
    session.add(fr_country)
    lu_country = Countries(name=u'lu')
    session.add(lu_country)
    us_country = Countries(name=u'us')
    session.add(us_country)
    zh_country = Countries(name=u'zh')
    session.add(zh_country)

    common_password = u'changeme'

    admin = User(login=u'admin',
                 password=common_password,
                 email=u'*****@*****.**',
                 firstname=u'The',
                 lastname=u'Administrator',
                 role=u'admin',
                 _country=fr_country)
    admin.groups.append(admin_group)
    session.add(admin)

    session.commit()
コード例 #27
0
ファイル: case.py プロジェクト: lansolo99/pyvac
 def setUp(self):
     transaction.begin()
     self.session = DBSession()