2005-04-18  Murray Cumming <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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  <murrayc@murrayc.com>

	* 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  <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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  <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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 <murrayc@murrayc.com>

	* 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  <murrayc@murrayc.com>

	* 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.