コード例 #1
0
def competence_radar_chart_datas(context, request):
    """
    Return the datas used to show a radar / spider chart of a user's
    competences
    context : CompetenceGrid
    """
    datas = []
    legend = []

    deadlines = CompetenceDeadline.query()
    deadlines = deadlines.filter(
        CompetenceDeadline.order <= context.deadline.order)
    for deadline in deadlines:
        grid = get_competence_grid(request, context.contractor_id, deadline.id)
        datas.append(grid.__radar_datas__())
        legend.append(u"Profil {0}".format(deadline.label))

    datas.append(CompetenceOption.__radar_datas__(context.deadline_id))
    legend.append(u"Profil de référence")

    config = {}
    config['levels'] = CompetenceScale.query().count()
    max_value = request.dbsession.query(func.max(
        CompetenceScale.value)).all()[0][0]

    config['maxValue'] = max_value

    return {'datas': datas, 'legend': legend, "config": config}
コード例 #2
0
def get_competence_grid(request, contractor_id, deadline_id):
    """
    Return a competence grid record for the given user and deadline
    """
    query = CompetenceGrid.query()
    query = query.filter_by(
        contractor_id=contractor_id,
        deadline_id=deadline_id,
    )

    grid = query.first()
    options = CompetenceOption.query()

    if grid is None:
        grid = CompetenceGrid(
            contractor_id=contractor_id,
            deadline_id=deadline_id,
        )

        request.dbsession.add(grid)

    for option in options:
        grid.ensure_item(option)

    return grid
コード例 #3
0
def competence_radar_chart_datas(context, request):
    """
    Return the datas used to show a radar / spider chart of a user's
    competences
    context : CompetenceGrid
    """
    datas = []
    legend = []

    deadlines = CompetenceDeadline.query()
    deadlines = deadlines.filter(
        CompetenceDeadline.order <= context.deadline.order
    )
    for deadline in deadlines:
        grid = get_competence_grid(request, context.contractor_id, deadline.id)
        datas.append(grid.__radar_datas__())
        legend.append(u"Profil {0}".format(deadline.label))

    datas.append(CompetenceOption.__radar_datas__(context.deadline_id))
    legend.append(u"Profil de référence")

    config = {}
    config['levels'] = CompetenceScale.query().count()
    max_value = request.dbsession.query(
        func.max(CompetenceScale.value)
    ).all()[0][0]

    config['maxValue'] = max_value

    return {'datas': datas, 'legend': legend, "config": config}
コード例 #4
0
def get_competence_grid(request, contractor_id, deadline_id):
    """
    Return a competence grid record for the given user and deadline
    """
    query = CompetenceGrid.query()
    query = query.filter_by(
        contractor_id=contractor_id,
        deadline_id=deadline_id,
    )

    grid = query.first()
    options = CompetenceOption.query()

    if grid is None:
        grid = CompetenceGrid(
            contractor_id=contractor_id,
            deadline_id=deadline_id,
        )

        request.dbsession.add(grid)

    for option in options:
        grid.ensure_item(option)

    return grid
コード例 #5
0
    def before(self, form):
        if CompetenceScale.query().count() == 0:
            self.session.flash(u"Les barêmes doivent être configurer avant \
la grille de compétences.")
            raise HTTPFound(self.request.route_path("admin_competence_scale"))
        if CompetenceOption.query().count() == 0:
            self.session.flash(
                u"La grille de compétence doit être configurée avant les \
barêmes")
            raise HTTPFound(self.request.route_path("admin_competence_option"))
        req_admin_class.before(self, form)
コード例 #6
0
    def before(self, form):
        if CompetenceScale.query().count() == 0:
            self.session.flash(u"Les barêmes doivent être configurés avant \
la grille de compétences.")
            raise HTTPFound(
                self.request.route_path(
                    os.path.join(COMPETENCE_URL, "competence_scale")))
        if CompetenceOption.query().count() == 0:
            self.session.flash(
                u"La grille de compétence doit être configurée avant les \
barêmes")
            raise HTTPFound(self.request.route_path("admin_competence_option"))
        BaseCompetenceRequirementView.before(self, form)
コード例 #7
0
    def before(self, form):
        if CompetenceScale.query().count() == 0:
            self.session.flash(
                u"Les barêmes doivent être configurer avant \
la grille de compétences."
            )
            raise HTTPFound(self.request.route_path("admin_competence_scale"))
        if CompetenceOption.query().count() == 0:
            self.session.flash(
                u"La grille de compétence doit être configurée avant les \
barêmes"
            )
            raise HTTPFound(self.request.route_path("admin_competence_option"))
        req_admin_class.before(self, form)
コード例 #8
0
    def before(self, form):
        if CompetenceScale.query().count() == 0:
            self.session.flash(
                u"Les barêmes doivent être configurés avant \
la grille de compétences."
            )
            raise HTTPFound(
                self.request.route_path(
                    os.path.join(COMPETENCE_URL, "competence_scale")
                )
            )
        if CompetenceOption.query().count() == 0:
            self.session.flash(
                u"La grille de compétence doit être configurée avant les \
barêmes"
            )
            raise HTTPFound(self.request.route_path("admin_competence_option"))
        BaseCompetenceRequirementView.before(self, form)
コード例 #9
0
 def get_appstruct(self):
     """
     Return the appstruct for competence requirements configuration
     """
     options = CompetenceOption.query().all()
     appstruct = []
     for option in options:
         opt_appstruct = {
             "id": option.id,
             "label": option.label,
             "requirements": []
         }
         for deadline in CompetenceDeadline.query():
             opt_appstruct['requirements'].append(
                 {
                     'deadline_id': deadline.id,
                     "deadline_label": deadline.label,
                     'requirement': option.get_requirement(deadline.id)
                 }
             )
         appstruct.append(opt_appstruct)
     return {'datas': appstruct}