mirror of
https://github.com/frappe/books.git
synced 2024-12-25 20:11:15 +00:00
1.4 KiB
1.4 KiB
Declaring Models
Models are declared by adding a .js
model file in the models/doctype
folder of the module/app.
Note: A model is called DocType
in Frappe.js
Fields
Every model must have a set of fields (these become database columns). All fields may have the following properties:
fieldname
: Column name in database / property name.fieldtype
: Data type (see details).label
: Display label.required
: Is mandatory.hidden
: Is hidden.disabled
: Is disabled.
Conditional Fields
The following fields: hidden
, required
can be conditional, depending on the values of other fields.
This is done by setting it's value to a function that receives an object with all the models fields and their values and returns a boolean.
See "Posting Date" in the example below.
Example
module.exports = {
"naming": "random",
"name": "ToDo",
"doctype": "DocType",
"issingle": 0,
"fields": [
{
"fieldname": "subject",
"label": "Subject",
"fieldtype": "Data",
"required": 1
},
{
"fieldname": "description",
"label": "Description",
"fieldtype": "Text"
},
{
"fieldname": "status",
"label": "Status",
"fieldtype": "Select",
"options": [
"Open",
"Closed"
],
"default": "Open",
"required": 1
},
{
"fieldname": "postingDate",
"label": "Posting Date",
"fieldtype": "Date",
"required": (doc) => doc.status === "Closed"
},
]
}