Person bundle¶
This bundle provides the ability to record people in the software. This bundle is required by other bundle.
Table of content
Entities provided¶
Todo
describe entities provided by person bundle
Search terms¶
The class ChillPersonBundleSearchPersonSearch provide the search module.
Domain¶
The search upon “person” is provided by default. The @person domain search may be omitted.
- @person is the domain search for people.
Arguments¶
- firstname : provide the search on firstname. Example : firstname:Depardieu. May match part of the firstname (firsname:dep will match Depardieu)
- lastname : provide the search on lastname. May match part of the lastname.
- birthdate : provide the search on the birthdate. Example : birthdate:1996-01-19
- gender: performs search on man/woman. The accepted values are man or woman.
- nationality : performs search on nationality. Value must be a country code as described in ISO 3166. Example : nationality:FR.
Configuration options¶
Those options are available under chill_person key.
Example of configuration:
chill_person:
validation:
birthdate_not_after: P15Y
person_fields:
# note: visible is the default config. This key may be omitted if visible is chosen.
nationality: hidden
email: hidden
place_of_birth: visible
phonenumber: hidden
country_of_birth: hidden
marital_status: visible
spoken_languages: hidden
address: visible
- birthdate_not_after string
The period duration before today during which encoding birthdate is not possible. The period is a string matching the format of ISO_8601, which is also use to build DateInterval classes.
Example: P1D, P18Y
Default value: P1D which means that birthdate before the current day (= yesterday) are allowed.
- person_fields array
This define the visibility of some fields. By default, all fields are visible, but you can choose to hide some of them. Available keys are :
- nationality
- country_of_birth
- place_of_birth
- phonenumber
- marital_status
- spoken_languages
- address
Possibles values: hidden or visible (all other value will raise an Exception).
Default value : visible, which means that all fields are visible.
Example:
chill_person: person_fields: nationality: hidden email: hidden phonenumber: hidden
Note
If all the field of a “box” are hidden, the whole box does not appears. Example: if the fields phonenumber and email are hidden, the title Contact information will be hidden in the UI.
Note
If you hide multiple fields, for a better integration you may want to override the template, for a better appeareance. See the symfony documentation about this feature.
Macros¶
Sticker for a person¶
- Macro file
- ChillPersonBundle:Person:macro.html.twig
- Macro envelope
render(p, withLink=false)
p
is an instance of :class:`Chill\PersonBundle\Entity\Person`withLink
:class:`boolean`- When to use this macro ?
- When you want to represent a person.
- Example usage :
{% import "ChillPersonBundle:Person:macro.html.twig" as person_ %} {{ person_.render(person, true) }}
Widgets¶
Add a list of person on homepage¶
The bundle provide a way to add a list of accompanyied person on the homepage:
chill_main:
widgets:
homepage:
-
order: 10
widget_alias: person_list
person_list:
# customize the number of items
number_of_items: 20
# only active
only_active: true
# you can add some filtering class, which will implements
# Chill\PersonBundle\PersonListWidget\PersonFilteringInterface
filtering_class: "\Hepc\HomepagePersonFiltering"
# when the view is overriden, you can add some custom fields
# to the view
custom_fields: [school-2fb5440e-192c-11e6-b2fd-74d02b0c9b55]
Commands¶
chill:person:move
¶
Usage:
chill:person:move [options]
Options:
-f, --from=FROM The person id to delete, all associated data will be moved before
-t, --to=TO The person id which will received data
--dump-sql dump sql to stdout
--force execute sql instead of dumping it
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-e, --env=ENV The Environment name. [default: "dev"]
--no-debug Switches off debug mode.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
Move all the associated entities on a "from" person to a "to" person and remove the old person
Move all the entities associated to a person onto another one, and remove the old person.
Warning
Some entities are ignored and will be deleted:
- the accompanying periods ;
- the data attached to a person entity: name, address, date of birth, etc. Thos should be merge before the move.
It is advised to run first the command with the dump-sql
option and, then, use the force
option.
The moving and suppression is executed inside a transaction, ensuring no data loss if the migration fails.
Note
Using bash and awk, it is easy to use a TSV file (values separated by a tab, not a comma) to create move commands. Assuming our file is named twins.tsv
and contains two columns: the first one with from
ids, and the second one with to
ids:
awk '{ print "php app/console chill:person:move --dump-sql --from " $1 " --to " $2;}' twins.tsv