= Trac Custom Field Admin plugin = == Description == This plugin is a Web Admin panel for administrating custom fields - adding, modifying and deleting them without editing the `trac.ini` file directly. The plugin is available for Trac 0.10 and 0.11. This plugin is a cooperation between !CodeResort.com and Optaros.com, and is made freely available under a BSD license. Known issues: * If your web server runs multiple processes, the other processes will not be able to delete custom fields - see [trac:ticket:3833] and [trac:ticket:5135] for progress on this issue. == Bugs/Feature Requests == Existing bugs and feature requests for CustomFieldAdminPlugin are [report:9?COMPONENT=CustomFieldAdminPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=CustomFieldAdminPlugin&owner=osimons new ticket]. == Download == Download the zipped source from [download:customfieldadminplugin here]. == Source == You can check out CustomFieldAdminPlugin from [http://trac-hacks.org/svn/customfieldadminplugin here] using Subversion, or [source:customfieldadminplugin browse the source] with Trac. == Configuration == This plugin requires Web Admin plugin ([trac:wiki:WebAdmin]) if you are using the 0.10 version, but not for 0.11 as Web Admin is interated into main Trac for this version. Enable the plugin in trac.ini: {{{ [components] customfieldadmin.* = enabled }}} == API == The plugin also has an API that can be called from other code if you need to create or modify custom fields. Here is an interactive session as example: {{{ #!python from trac.env import Environment from customfieldadmin.api import CustomFields myenv = Environment('/path/to/env') mycfcomp = CustomFields(myenv) # Get Cusom fields (list of dicts) myfields = mycfcomp.get_custom_fields(myenv) for item in myfields: print item # Create a custom field - text box mycfdict = { # a template dictionary 'name': 'test01', # name of field (alphanumeric only) 'type': 'text', # text|checkbox|select|radio|textarea 'label': 'Test 01', # description 'value': 'first test', # default value for field content 'options': None, # options for select and radio types (list, leave first empty for optional) 'cols': None, # number of columns for text area 'rows': None, # number of rows for text area 'order': 0 } # specify sort order for field, 0 for last mycfcomp.update_custom_field(myenv, mycfdict, create=True) # Updating mycfdict['type'] = 'select' mycfdict['options'] = ['', 'one', 'two', 'three'] mycfdict['value'] = None mycfcomp.update_custom_field(myenv, mycfdict) # And deleting an existing custom field mycfcomp.delete_custom_field(myenv, mycfdict) }}} == Recent Changes == [[ChangeLog(customfieldadminplugin, 3)]] == Author/Contributors == '''Authors:''' [wiki:osimons], [wiki:cbalan] [[BR]] '''Contributors:'''