2005-04-18 Murray Cumming * examples/example_smallbusiness.glom: Remove 0 and NULL default values. * glom/document/document_glom.cc: Save default values with GlomConversions::get_text_for_gda_value(), in iso-format, instead of Gda::Value::to_string(). This stops empty default values being changed to 0s and NULLs. * glom/mode_data/box_data_list.cc: Specify the list row when calling set_field_value_in_database() so that lookups/ calcs actually happen. 2005-04-18 Murray Cumming * examples/example_smallbusiness.glom: product: Add vat_percent field. invoice_lines: Lookup vat_percent along with the other product information. * glom/mode_data/box_data.cc: * glom/mode_data/box_data.h: * glom/mode_data/box_data_details.cc: * glom/mode_data/box_data_details.h: * glom/mode_data/box_data_list.cc: Always use set_field_value_in_database() instead of custom UPDATE sql queries, and do all dependent recalcs/lookups/etc in set_field_value_in_database(). 2005-04-18 Murray Cumming * glom/mode_data/box_data_details.cc: * glom/mode_data/notebook_data.cc: * glom/mode_design/dialog_fields.cc: * glom/mode_design/dialog_relationships.cc: * glom/mode_design/fields/box_db_table_definition.cc: * glom/mode_design/fields/dialog_fielddefinition.cc: * glom/mode_design/users/dialog_groups_list.cc: * glom/mode_find/notebook_find.cc: Added View_Composite::remove_view() calls before deleting widgets that have been add_view()ed. This fixes a crash when reopening the field definition details dialog. 2005-04-17 Murray Cumming * examples/example_smallbusiness.glom: Add VAT fields to invoice_lines and invoices, with calculations. * glom/data_structure/layout/layoutitem.cc: * glom/data_structure/layout/layoutitem.h: * glom/data_structure/layout/layoutitem_field.cc: * glom/data_structure/layout/layoutitem_field.h: Add operator==(). * glom/glom.glade: * glom/mode_data/dialog_layout_list_related.cc: * glom/mode_data/dialog_layout_list_related.h: Add a Formatting button, as already in the regular List Layout dialog. * glom/mode_data/box_data.cc: * glom/mode_data/box_data.h: do_calculations(), * glom/mode_data/box_data_details.cc: recalculate_fields_for_related_records(): Recalculated fields that depend on the just-recalculated fields, with some attempt to prevent circular fields. The dependency- sequence needs to be figured out all at once, however - see the TODO> * glom/python_embed/python_module/pygdavalue_conversions.c: (pygda_value_as_pyobject): Return a PyFloat for a GdaNumeric, instead of a PyLong. 2005-04-17 Murray Cumming * glom/mode_data/box_data_list.cc: * glom/mode_data/box_data_list.h: * glom/mode_data/box_data_list_related.cc: * glom/mode_data/box_data_list_related.h: Emit the signal_record_changed signal when deleting related records, to cause field recalculations. 2005-04-17 Murray Cumming * glom/mode_data/box_data.cc: record_new(): Iterate from begin to end, not begin to begin, so we actually set default values and calculate initial values. * glom/mode_design/fields/dialog_fielddefinition.cc: set_field(): Monitor changes to the dynamically-created default value widget, not just the rest, so that changes to the default value enable the Save button. 2005-04-17 Murray Cumming * glom/mode_data/box_data_list.cc: fill_from_database(): Call DbAddDel::set_where_clause(), so that related records portals show only the related records instead of all records. * glom/utility_widgets/db_adddel/db_adddel.cc: * glom/utility_widgets/db_adddel/db_adddel.h: Added set_where_clause(), and used it when creating the treemodel. get_is_placeholder(): Cope with invalid iterators. * po/POTFILES.in: Updated. 2005-04-17 Murray Cumming * docs/website/index.html: Updated. * glom/mode_data/box_data_details.cc: * glom/mode_data/box_data_details.h: * glom/mode_data/box_data_list_related.cc: * glom/mode_data/box_data_list_related.h: * glom/mode_design/fields/dialog_fieldcalculation.cc: * glom/utility_widgets/flowtablewithfields.cc: * glom/utility_widgets/flowtablewithfields.h: Add FlowTable::signal_related_record_changed() and Box_Data_List_Related::signal_record_changed() to allow the Box_Data_Details to recalculate fields that use the relationship whose records have changed. 2005-04-16 Murray Cumming * examples/example_smallbusiness.glom: Add count and total_price (calculated) fields to invoice_lines. Add price_total (calculated) field to invoices. * glom/data_structure/field.cc: * glom/data_structure/field.h: Add get_calculation_relationships() to discover what relationships are used by a calculation. * glom/data_structure/glomconversions.cc: Change example value for numbers to 1 from 123, so we are more likely to find related records when testing calculations. * glom/python_embed/python_module/py_glom_record.cc: * glom/python_embed/python_module/py_glom_record.h: Remove the unused m_gda_connection member variable. * glom/python_embed/python_module/py_glom_relatedrecord.cc: Add sum(), count(), min(), and max() python methods. For instance, record["invoice_lines"].sum("total_price"); 2005-04-16 Murray Cumming * glom/data_structure/layout/layoutitem_field.cc: * glom/data_structure/layout/layoutitem_field.h: Forward get/set_name() to m_field instead of using m_name from the base class. * glom/document/document_glom.cc: * glom/mode_data/box_data.cc: * glom/mode_data/box_data_details.cc: * glom/mode_data/box_data_list.cc: * glom/mode_data/box_data_list_related.cc: Remove set_name() where we also set m_field with an identical name. 2005-04-16 Murray Cumming * glom/python_embed/python_module/py_glom_relatedrecord.cc: RelatedRecord_tp_as_mapping_getitem(): Actually execute the SQL so that it actually gets the data. And also handle various errors and give interesting warnings. 2005-04-16 Murray Cumming * glom/mode_data/box_data.cc: * glom/mode_design/fields/dialog_fieldcalculation.cc: * glom/python_embed/glom_python.cc: * glom/python_embed/glom_python.h: * glom/python_embed/python_module/Makefile.am: * glom/python_embed/python_module/py_glom_module.cc: * glom/python_embed/python_module/py_glom_module.h: * glom/python_embed/python_module/py_glom_record.cc: * glom/python_embed/python_module/py_glom_record.h: * glom/python_embed/python_module/py_glom_related.cc: * glom/python_embed/python_module/py_glom_related.h: * glom/python_embed/python_module/py_glom_relatedrecord.cc: * glom/python_embed/python_module/py_glom_relatedrecord.h: Added record.related[relationship_name][field_name] syntax for calculated fields, though it is not working yet. * glom/python_embed/python_module/pygdavalue_conversions.c: * glom/utility_widgets/adddel/eggcolumnchooser/eggcolumnchooserdial og.c: * glom/utility_widgets/adddel/eggcolumnchooser/eggcolumnmodel.c: Extra C casts needed for g++ 3.4. 2005-04-16 Murray Cumming * glom/python_embed/glom_python.cc: * glom/python_embed/python_module/py_glom_record.cc: * glom/python_embed/python_module/py_glom_record.h: Access field values via record[] instead of record.fields[].get(). * glom/data_structure/field.cc: get_calculation_fields(): Revise for the new syntax. * glom/python_embed/python_module/ Added py_glom_related.[h|cc], which will, soon, provide access to related records. Added py_glom_module.[h|cc]: Added, and moved the module init stuff into here.