Hi, Maxwell
1. Metadata file contains only metadata.
I don't know if it could help but there is an on_created event that I sometimes use when I need to do some actions after metadata import.
Import and export code is located in export_metadata.py and import_metadata.py in the the jam/admin/ folder of the package.
It would be interesting to create a visual interface for export and import so exporting and importing of selected changes would be possible
2. You can get the jam fields of the item this way:
get_fields(task.customers)
def get_fields(item):
admin = item.task.app.admin
fields = admin.sys_fields.copy(handlers=False)
fields.set_where(owner_rec_id=item.ID)
fields.open()
for f in fields:
print(f.f_field_name.value)
admin is the task of the app builder and the app builder database is the admin.sqlite
3. I think changing the report engine in Jam.py is a very non-trivial task.
The Report class is defined in items.py
class AbstrReport(AbstractItem):
and in server_classes.py
class Report(AbstrReport, ParamReport):
4. I'll write the code to fix this.
Now you can change, for example, the required attribute this way:
item.taxrate.required = true;
item.edit_form.find('label.taxrate').addClass('required');
Regards,
Andrew