This package allows administrators to add custom fields to any of the ]project-open[ main business objects without touching the ]po[ code. Instead, administration screens exist that allow to define field names, storage type, value range and widgets for DynFields.
This mechanism allows ]po[ to be modified according to specific customer needs, in a more time and energy efficient manner. See: DynFields Administration for more on how this is done specifically within ]project-open[.
For a more amplified discussion of DynFields see:
Tutorials:
Related Object Types
tcl/attribute-procs.tcl Procs to help with attributes for object types tcl/calculated-sql-widget-procs.tcl Additional Widgets for use with the intranet-dynfield extensible architecture tcl/generic-sql-widget-procs.tcl Additional Widgets for use with the intranet-dynfield extensible architecture tcl/generic-tcl-widget-procs.tcl Additional Widgets for use with the intranet-dynfield extensible architecture tcl/hidden-widget-procs.tcl Additional OpenACS Widgets for use with the DynField extensible architecture tcl/instant-message-widgets-procs.tcl Widget procs for instant messaging tcl/intranet-dynfield-install-procs.tcl tcl/intranet-dynfield-procs.tcl Support procs for the intranet-dynfield package tcl/mobile-number-widget-procs.tcl Mobile_Number input widget and utilities procs for the OpenACS templating system. tcl/recurrence-widget-procs.tcl Address input widget and datatype for the OpenACS templating system. tcl/telecom-number-widget-procs.tcl Telecom_Number input widget and datatype for the OpenACS templating system.
attribute::delete_xt Intranet-Dynfield extended version of deleting the specified attribute id and all its values. attribute::name this code returns the name of an attribute im_dynfield::append_attribute_to_form Append a single attribute to a form im_dynfield::append_attributes_to_form Append intranet-dynfield attributes for object_type to an existing form.<p> im_dynfield::append_attributes_to_im_view Returns a list with three elements: Element 0: A list of PrettyNames, suitable to be appended to the "column_headers" list of a project-open im_view type of ListPage (such as ProjectListPage, CompanyListPage, ...) Element 1: A list of "display_tcl" expressions suitable to be appended to the "column_vars" list of a project-open im_view ListPage. im_dynfield::attribute::add Create a completely new im_dynfield attribute and handle all strange side conditions. im_dynfield::attribute::exists_p Check if the intranet-dynfield attribute already exists.<br> Considers the case that intranet-dynfield got installed and deinstalled before, so it only considers attributes that exist in both acs_attributes and im_dynfield_attributes. im_dynfield::attribute::exists_p_not_cached Check if the intranet-dynfield attribute already exists.<br> Considers the case that intranet-dynfield got installed and deinstalled before, so it only considers attributes that exist in both acs_attributes and im_dynfield_attributes. im_dynfield::attribute::get Returns the im_dynfield_attribute_id, or 0 if there is none. im_dynfield::attribute::get_name_from_id Returns the cached name for the dynfield attribute im_dynfield::attribute::map Map an ams option for an attribute to an option_map_id, if no value is supplied for option_map_id a new option_map_id will be created. im_dynfield::attribute::optional Specify and ams_attribute as optional in an ams list im_dynfield::attribute::required Specify and ams_attribute as required in an ams list im_dynfield::attribute::unmap Unmap an ams option from an ams list im_dynfield::attribute_store Store intranet-dynfield attributes. im_dynfield::attribute_validate Validates intranet-dynfield attributes and ensures a clean error handling. im_dynfield::create_clone_update_sql Returns an SQL update statement that can be executed in the context of an object clone() procedure in order to update dynfields from variables in memory, pulled out of the DB by a statement such as "select p.* from im_projects...". im_dynfield::datatype_options Return the default list of datatypes cached im_dynfield::datatype_options_not_cached Return the default list of datatypes not cached im_dynfield::dynfields_per_object_subtype Returns the list of dynfield_attributes for each subtype im_dynfield::dynfields_per_object_subtype_helper Returns the list of dynfield_attributes that are common to all object subtypes im_dynfield::elements This returns a list of lists with the attribute information It checks for permission on the dynfield im_dynfield::left_navbar Return a HTML component with the list of DynField pages. im_dynfield::object_attributes_derefs Returns a list list of dereferentiation "SELECT" statements. im_dynfield::object_attributes_for_select Returns a list {key1 value1 key2 value2 ...} of attributes and pretty_names for object. im_dynfield::package_id TODO: Get the INTRANET-DYNFIELD package ID, not the connection package_id Get the package_id of the intranet-dynfield instance im_dynfield::package_install im_dynfield::plsql::index_column Returns the index column for the object's main table im_dynfield::plsql::new_object_create_call Returns the Pl/SQL call to create a new object of type object_type. im_dynfield::plsql::required_variables Returns the list of variables that need to be present in order to execute the new_object_create_call Pl/SQL call successfully. im_dynfield::search_sql_criteria_from_form This procedure generates a subquery SQL clause "(select object_id from ...)" that can be used by a main query clause either as a "where <*>_id in ..." or via a join in order to limit the number of object_ids to the ones that fit to the filter criteria. im_dynfield::set_form_values_from_http Set the values of a form based on the values from "ns_conn form". im_dynfield::set_local_form_vars_from_http Set local variables to the values passed on in HTTP, so that we don't need to add all of them into the ad header. im_dynfield::status_category_for_object_type Get the category for the status_id of a given object_type im_dynfield::subtype_have_same_attributes_p Returns "1" if all object subtypes have the same list of dynfields. im_dynfield::type_categories_for_object_type im_dynfield::type_category_for_object_type Get the category for the type_id of a given object_type im_dynfield::util::missing_attributes_from_table Returns a list of list of column names from the table which are not in acs_attributes. im_dynfield::widget_options Return the default list of widgets cached im_dynfield::widget_options_not_cached im_dynfield::widget_options_not_cached_procs Pulls out all procedures following a patters. im_dynfield::widget_request Corresponds to ::ams::widget::${widget} functions to answer to "request". im_dynfield_multimap_id Return the storage type id of a table im_dynfield_multimap_ids Return the multimap ids im_dynfield_multimap_table Return the table_name of a storage_type_id im_dynfield_multimap_tables Return the multimap tables im_dynfield_multimaps Return a list of list of the multimap storage types and their table which at the moment is 10005 for normal multimapping and 10006 for im_category multimapping im_dynfield_storage_type_id_multimap im_dynfield_storage_type_id_value template::widget::calculated_sql Calculated Sql Widget template::widget::dynfield_hidden Hidden Widget template::widget::generic_sql Generic SQL Select Widget template::widget::generic_tcl Generic TCL Select Widget
sql/postgresql/intranet-dynfield-create.sql sql/postgresql/intranet-dynfield-drop.sql sql/postgresql/upgrade/upgrade-5.0.3.0.3-5.0.3.0.4.sql
Calle Aprestadora 19, 12o-2a
08902 Hospitalet de Llobregat (Barcelona)
Spain
Tel Europe: +34 609 953 751
Tel US: +1 415 200 2465
Mail: info@project-open.com