<commit_before>.. doctest docs/specs/cv.rst
.. _lino.tested.cv:

================================================
``cv`` : Managing career-related data of clients
================================================

.. currentmodule:: lino_xl.lib.cv

The :mod:`lino_xl.lib.cv` plugin adds functionality for managing career-related
information about a client which can be used for example to generate a CV (a
*curriculum vitae*).

.. contents::
   :depth: 1
   :local:

.. include:: /../docs/shared/include/tested.rst

>>> from lino import startup
>>> startup('lino_book.projects.max.settings.demo')
>>> from lino.api.doctest import *


>>> UserTypes = rt.models.users.UserTypes
>>> AllLanguageKnowledges = rt.models.cv.AllLanguageKnowledges

>>> a = UserTypes.admin
>>> a
users.UserTypes.admin:900

>>> u = UserTypes.user
>>> u
users.UserTypes.user:100

>>> AllLanguageKnowledges.required_roles == {cv.CareerStaff}
True

>>> AllLanguageKnowledges.default_action.get_view_permission(u)
False

>>> AllLanguageKnowledges.default_action.get_view_permission(a)
False<commit_msg>converting cv docs to prosa<commit_after>.. doctest docs/specs/cv.rst
.. _lino.tested.cv:

================================================
``cv`` : Managing career-related data of clients
================================================

.. currentmodule:: lino_xl.lib.cv

The :mod:`lino_xl.lib.cv` plugin adds functionality for managing career-related
information about a client which can be used for example to generate a CV (a
*curriculum vitae*).

.. contents::
   :depth: 1
   :local:


Concepts
========

.. glossary::

  Language knowledge

    The fact that a given person knows a given language at a given degree.

    Database model: :class:`LanguageKnowledge`

- An **education** entry (fr: Éducation, de: Bildung) is when a given
  person has followed lessons in a given *school* for a given
  *period*.  There are two basic types of education: **studies** (fr:
  Études, de: Studium) and **trainings** (fr: Formation, de:
  Ausbildung).

- A **Work experience** (fr: Expérience professionnelle, de:
  Berufserfahrung) is when a given person has worked in a given
  *organisation* for a given *period*.



.. include:: /../docs/shared/include/tested.rst

>>> from lino import startup
>>> startup('lino_book.projects.max.settings.demo')
>>> from lino.api.doctest import *



>>> UserTypes = rt.models.users.UserTypes
>>> AllLanguageKnowledges = rt.models.cv.AllLanguageKnowledges

>>> a = UserTypes.admin
>>> a
users.UserTypes.admin:900

>>> u = UserTypes.user
>>> u
users.UserTypes.user:100

>>> AllLanguageKnowledges.required_roles == {cv.CareerStaff}
True

>>> AllLanguageKnowledges.default_action.get_view_permission(u)
False

>>> AllLanguageKnowledges.default_action.get_view_permission(a)
False



.. class:: LanguageKnowledge

  Django model to represent a :term:`Language knowledge`.

  .. attribute:: person

    The person to which this entry applies.

  .. attribute:: language

    The language to which this entry applies.

  .. attribute:: spoken
  .. attribute:: written
  .. attribute:: spoken_passively
  .. attribute:: written_passively
  .. attribute:: native
  .. attribute:: cef_level

    The CEF level. A pointer to a choice of :class:`CefLevels`

  .. attribute:: has_certificate

    Whether this entry is confirmed by a certificate.

  .. attribute:: entry_date

    When this entry was created.
{'fraction_non_alphanumeric': 0.17337643255950633, 'fraction_numerical': 0.004114017043784896, 'mean_word_length': 4.394611727416799, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 75, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6370932', 'n_tokens_mistral': 1066, 'n_tokens_neox': 992, 'n_words': 294}