= FlexibleAssignTo = == Description == == What is it? == FlexibleAssignTo finally gives long-suffering Trac admins a way to easily customize the 'assign to' field on tickets. It provides several base classes for you to override and implement your own methods for providing lists of valid users -- you can even customize valid users for each state in your workflow. Key features: * adds new Extension point, IValidOwnerProvider, for plugging in your own components * provides !SimpleUser base class and helper methods (getlist, getbool) to streamline implementation of your IValidOwnerProvider component(s) * data-source agnostic -- FlexibleAssignTo abstracts the nastiness of building a customized 'assign to' select box. All your custom code has to do is decide what users are valid for a particular state and then return them. * optional 'ensure_user_data' capability so that users who appear as valid 'assign to' targets get their key data (username, fullname, email) stored in the Trac session_attribute table. The motivation for this was so notification emails could be sent to these users even if they've never logged in and set their preferences. * optional get_known_users() replacement that changes Trac's 'known users' concept such that users' name & email data is retrieved from the session_attribute table (designed to work in concert with the 'ensure_user_data' capability). * FlexibleAssignTo processing can be selectively disabled for individual workflow states * Example plugin implementation included (!SampleValidOwnerProvider.py) == Bugs/Feature Requests == Existing bugs and feature requests for FlexibleAssignToPlugin are [report:9?COMPONENT=FlexibleAssignToPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=FlexibleAssignToPlugin&owner=gt4329b new ticket]. == Download == Download the zipped source from [download:flexibleassigntoplugin here]. == Source == You can check out FlexibleAssignToPlugin from [http://trac-hacks.org/svn/flexibleassigntoplugin here] using Subversion, or [source:flexibleassigntoplugin browse the source] with Trac. == Example == See the 'How to install section' above for details. For an example of how to implement IValidOwnerProvider, see the included sample plugin !SampleValidOwnerProvider.py. == Recent Changes == [[ChangeLog(flexibleassigntoplugin, 3)]] == Author/Contributors == '''Author:''' [wiki:gt4329b] [[BR]] '''Contributors:'''