Pour ne pas interférer avec oryxr , je créé un autre fil que Récupération des custom_field.
Sur la docker stack de dev (frappe_docker)
Après la lecture du fil précédent, j’ai lu et écrit mon install.py et modifier hooks.py:
after_install = "myapp.install.after_install"
after_migrate = "myapp.install.after_migrate"
et
import click
import frappe
from frappe import _
from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
def after_install():
add_custom_fields()
def after_migrate():
add_custom_fields()
# add_property_setters()
def add_custom_fields():
click.secho("* Adding User custom fields")
custom_fields = get_custom_fields()
create_custom_fields(custom_fields)
def get_custom_fields():
return {
"User": [
{
"fieldname": "level",
"fieldtype": "Int",
"label": "User's Level",
"insert_after": "enabled"
}
]
}
MODULE = "frappe"
PROPERTY_SETTERS = [
# {
# "name": "DOCTYPE-FIELD-PROPERTY",
# "doc_type": "DOCTYPE",
# "doctype_or_field": "DocField",
# "field_name": "FIELD",
# "property": "PROPERTY",
# "value": "VALUE",
# },
]
for ps in PROPERTY_SETTERS:
assert ps["name"], "Property Setter name is required"
frappe.delete_doc_if_exists("Property Setter", ps["name"])
doc = frappe.new_doc("Property Setter") # type: ignore
doc.is_system_generated = True
doc.module = MODULE
doc.update(ps)
doc.insert()
puis je bench --site eco.localhost migrate
et enfin bench start
, ça se passe bien :
Syncing portal menu...
Updating installed applications...
Executing `after_migrate` hooks...
* Adding User custom fields
Queued rebuilding of search index for eco.localhost
et le champ level
est bien créé dans la table tabUser,
mais il n’apparait pas dans les champs sur le desk:
Hmmm, je n’ai sans doute pas compris l’histoire avec property_setters.
EDIT: Mah, oui, j’ai zero PS, donc la boucle for ps va être courte ! Bon alors, je dois faire quoi pour juste rajouter un pauvre champ ?