# DocType, Custom Field
[

	# These values are common in all dictionaries
	{
		'creation': '2010-10-13 16:33:29',
		'docstatus': 0,
		'modified': '2011-01-04 14:39:15',
		'modified_by': 'umair@iwebnotes.com',
		'owner': 'Administrator'
	},

	# These values are common for all DocType
	{
		'_last_update': '1305789385',
		'allow_trash': 1,
		'autoname': 'CustomField.####',
		'colour': 'White:FFF',
		'description': 'Adds a custom field to a DocType',
		'doctype': 'DocType',
		'module': 'Core',
		'name': '__common__',
		'search_fields': 'dt,label,fieldtype,options',
		'section_style': 'Simple',
		'server_code': '    \n  # Add Field\n  # ----------\n  def add_field(self):\n    field_exists = sql("select name from tabDocField where parent = %s and (label = %s or fieldname = %s)" , (self.doc.dt, self.doc.label, self.doc.fieldname))\n    field_exists = field_exists and field_exists[0][0] or \'\'\n    self.ignore_fields = [\'dt\',\'trash_reason\',\'insert_after\',\'index\',\'customfield1\',\'length\']\n    if field_exists:\n      df = Document(\'DocField\',field_exists)\n      self.update_field(df, n = 0)\n    else:\n      df = Document(\'DocField\')\n      self.update_field(df, n = 1)\n\n\n\n  # Update Field\n  # -------------\n  def update_field(self, df, n):\n    import webnotes.model\n    sql("update tabDocField set idx = idx + 1 where parent = %s and idx > %s", (self.doc.dt, self.idx))\n    for k in self.doc.fields:\n      if k not in webnotes.model.default_fields and k not in self.ignore_fields:\n        df.fields[k] = self.doc.fields[k]\n    df.parent = self.doc.dt\n    df.parenttype = \'DocType\'\n    df.parentfield = \'fields\'\n    df.idx = self.idx+1\n    df.save(n)\n    dt_obj = get_obj(\'DocType\',self.doc.dt,with_children=1)\n    dt_obj.validate()\n    dt_obj.on_update()\n    dt_obj.doc.save()',
		'server_code_error': ' ',
		'show_in_menu': 0,
		'version': 158
	},

	# These values are common for all DocField
	{
		'doctype': 'DocField',
		'name': '__common__',
		'parent': 'Custom Field',
		'parentfield': 'fields',
		'parenttype': 'DocType'
	},

	# These values are common for all DocPerm
	{
		'doctype': 'DocPerm',
		'name': '__common__',
		'parent': 'Custom Field',
		'parentfield': 'permissions',
		'parenttype': 'DocType',
		'read': 1
	},

	# DocType, Custom Field
	{
		'doctype': 'DocType',
		'name': 'Custom Field'
	},

	# DocPerm
	{
		'cancel': 1,
		'create': 1,
		'doctype': 'DocPerm',
		'idx': 1,
		'permlevel': 0,
		'role': 'Administrator',
		'write': 1
	},

	# DocPerm
	{
		'doctype': 'DocPerm',
		'idx': 2,
		'permlevel': 1,
		'role': 'Administrator'
	},

	# DocPerm
	{
		'doctype': 'DocPerm',
		'idx': 3,
		'permlevel': 2,
		'role': 'Administrator'
	},

	# DocPerm
	{
		'cancel': 1,
		'create': 1,
		'doctype': 'DocPerm',
		'idx': 4,
		'permlevel': 0,
		'role': 'System Manager',
		'write': 1
	},

	# DocPerm
	{
		'doctype': 'DocPerm',
		'idx': 5,
		'permlevel': 1,
		'role': 'System Manager'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldtype': 'Column Break',
		'idx': 1,
		'label': 'Details',
		'oldfieldtype': 'Column Break',
		'permlevel': 0,
		'width': '50%'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'trash_reason',
		'fieldtype': 'Small Text',
		'idx': 2,
		'label': 'Trash Reason',
		'oldfieldname': 'trash_reason',
		'oldfieldtype': 'Small Text',
		'permlevel': 1
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'dt',
		'fieldtype': 'Link',
		'idx': 3,
		'label': 'Document',
		'oldfieldname': 'dt',
		'oldfieldtype': 'Link',
		'options': 'DocType',
		'permlevel': 0,
		'reqd': 1,
		'trigger': 'Client'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'label',
		'fieldtype': 'Data',
		'idx': 4,
		'label': 'Label',
		'no_copy': 1,
		'oldfieldname': 'label',
		'oldfieldtype': 'Data',
		'permlevel': 0,
		'reqd': 1
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldtype': 'HTML',
		'idx': 5,
		'label': 'Label Help',
		'oldfieldtype': 'HTML',
		'permlevel': 0
	},

	# DocField
	{
		'colour': 'White:FFF',
		'doctype': 'DocField',
		'fieldname': 'fieldtype',
		'fieldtype': 'Select',
		'idx': 6,
		'label': 'Field Type',
		'oldfieldname': 'fieldtype',
		'oldfieldtype': 'Select',
		'options': '\nButton\nCheck\nColumn Break\nCurrency\nData\nDate\nFloat\nHTML\nInt\nLink\nRead Only\nSection Break\nSelect\nSmall Text\nText\nText Editor\nTime',
		'permlevel': 0,
		'reqd': 1,
		'trigger': 'Client'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldtype': 'HTML',
		'idx': 7,
		'label': 'Options Help',
		'oldfieldtype': 'HTML',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'options',
		'fieldtype': 'Text',
		'idx': 8,
		'label': 'Options',
		'oldfieldname': 'options',
		'oldfieldtype': 'Text',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'description',
		'fieldtype': 'Text',
		'idx': 9,
		'label': 'Field Description',
		'oldfieldname': 'description',
		'oldfieldtype': 'Text',
		'permlevel': 0,
		'width': '300px'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldtype': 'Column Break',
		'idx': 10,
		'label': 'Properties',
		'oldfieldtype': 'Column Break',
		'permlevel': 0,
		'width': '50%'
	},

	# DocField
	{
		'colour': 'White:FFF',
		'description': 'Select the label after which you want to insert new field.',
		'doctype': 'DocField',
		'fieldname': 'insert_after',
		'fieldtype': 'Select',
		'idx': 11,
		'label': 'Insert After',
		'oldfieldname': 'insert_after',
		'oldfieldtype': 'Select',
		'permlevel': 0,
		'trigger': 'Client'
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'default',
		'fieldtype': 'Text',
		'idx': 12,
		'label': 'Default Value',
		'oldfieldname': 'default',
		'oldfieldtype': 'Text',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'fieldname',
		'fieldtype': 'Data',
		'idx': 13,
		'label': 'Fieldname',
		'no_copy': 1,
		'oldfieldname': 'fieldname',
		'oldfieldtype': 'Data',
		'permlevel': 2
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'width',
		'fieldtype': 'Data',
		'idx': 14,
		'label': 'Width',
		'oldfieldname': 'width',
		'oldfieldtype': 'Data',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'reqd',
		'fieldtype': 'Check',
		'idx': 15,
		'label': 'Is Mandatory Field',
		'oldfieldname': 'reqd',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'in_filter',
		'fieldtype': 'Check',
		'idx': 16,
		'label': 'In Report Filter',
		'oldfieldname': 'in_filter',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'no_copy',
		'fieldtype': 'Check',
		'idx': 17,
		'label': 'No Copy',
		'oldfieldname': 'no_copy',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'print_hide',
		'fieldtype': 'Check',
		'idx': 18,
		'label': 'Print Hide',
		'oldfieldname': 'print_hide',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'report_hide',
		'fieldtype': 'Check',
		'idx': 19,
		'label': 'Report Hide',
		'oldfieldname': 'report_hide',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'doctype': 'DocField',
		'fieldname': 'allow_on_submit',
		'fieldtype': 'Check',
		'idx': 20,
		'label': 'Allow on Submit',
		'oldfieldname': 'allow_on_submit',
		'oldfieldtype': 'Check',
		'permlevel': 0
	},

	# DocField
	{
		'default': '0',
		'doctype': 'DocField',
		'fieldname': 'permlevel',
		'fieldtype': 'Int',
		'idx': 21,
		'label': 'Permission Level',
		'oldfieldname': 'permlevel',
		'oldfieldtype': 'Int',
		'permlevel': 0
	}
]