Hi Daniel, were you able to find solution to this? I'm trying to do the same thing, but no success.
On Wednesday, 30 May 2018 10:26:47 UTC+2, Daniel Latzer wrote: > > Ah, nice, that link was exactly what i was looking for, thank you. Also > the next section about custom dropdown data, since I want the EventDates to > be filtered so that only dates can be selected that aren't in the past. > However this led me to a new problem: > > I've made my own field like shown at the bottom and added it, but > _my_update_params seems to never be called. (It just displays like a > PropertyMultipleSelectField would do, and ignores my filters. However if i > change the superclass of EventDateField to PropertySingleSelectField, it > gets displayed as a dropdown, so it isn't completely ignored. I've also > attached the debugger to check, _my_update_params, or update_params for > that matter doesn't appear to be called at all. > > (Also i'd like to use CheckBoxLIst instead, but it complained about me not > providing options, and if that's not easy to do it's okay, i'll just stay > with the MultipleSelect. I've also already tried this - doing `event_date = > CheckBoxList(id="event_date", options=event_date_options())`, but there i > had the problem that it evaluated event_date_options() only once on > starting the server, and i want the data options to be refreshed on each > load of the form) > > #class EventDateField(CheckBoxList) > class EventDateField(PropertyMultipleSelectField): > > field_type="checkbox" > def _my_update_params(self, d, nullable=False): > dates = DBSession.query(OrderDate).filter(...).all() > options = [(date.id, format_date(date.date)) for date in dates] > d['options']=options > return d > > class ActivityAddForm(AddRecordForm): > __model__ = Activity > > event_date = EventDateField > > > On Tue, May 29, 2018 at 1:36 PM Alessandro Molina <[email protected] > <javascript:>> wrote: > >> I think that usage of sprox/tgext.crud/tgext.admin have a lot of space >> for improvements on documentation in TurboGears, so if you think there are >> ways that the documentation can be improved once you got a clear >> understanding on how you can do what you are trying to do feel free to >> contribute any change you think might be required. I'll gladly review and >> merge it. >> >> On Tue, May 29, 2018 at 1:33 PM Alessandro Molina <[email protected] >> <javascript:>> wrote: >> >>> I think >>> https://turbogears.readthedocs.io/en/latest/cookbook/sprox.html#custom-dropdown-field-names >>> >>> is what you are looking for (option was recently renamed to >>> possible_field_names but works the same way) >>> You can set it in __form_options__ for the admin crudControllerConfig >>> and have the generated forms use that as their preview field in single >>> selects. >>> >>> For users and groups it works automatically because sprox tries to be >>> smart in detecting the proper field to use and one of the heuristics is to >>> grab a field that is named "something_name" so group_name gets picked. >>> >>> On Thu, May 24, 2018 at 3:06 PM Daniel Latzer <[email protected] >>> <javascript:>> wrote: >>> >>>> Hello >>>> >>>> I've created two tables in an m:n relationship: >>>> >>>> Activity (id, name) >>>> EventDates (id, date) >>>> >>>> and linked these two using a sqlalchemy `relation`, mapping EventDates >>>> as `event_dates` to Activity. >>>> >>>> I want to create Activities that can take on one or more EventDates. >>>> Using the admin (and also a form generated with a `CrudRestController` >>>> as seen here >>>> <http://turbogears.readthedocs.io/en/latest/cookbook/Crud/index.html#custom-crudrestcontroller>), >>>> >>>> the generated Multi-Select widget in the new-Activity Form just displays >>>> me >>>> the primary key of the EventDate entries. I'd rather have it display the >>>> date of the EventDate entries. >>>> >>>> I've inherited this application and am not really familiar with >>>> Turbogears. Looking at some already existing models that are tied in with >>>> `TGAuthMetadata` i can see in the Admin that there is basically the same >>>> thing going on with User <-> Group <-> Permissions, and in these forms the >>>> user_name, group_name or permission_name get displayed in the Multi-Select >>>> and I cannot figure out how that has been achieved. >>>> >>>> So basically if I have this: >>>> >>>> class ActivityAddForm(AddRecordForm): >>>> __model__ = Activity >>>> __omit_fields__ = ['id'] >>>> event_dates = ??? # this has an m:n relation to EventDate >>>> >>>> >>>> How do i get the resulting Multi-Select to render something different >>>> than the primary key of EventDate? Is it derived from the model? Is it >>>> configured somewhere? >>>> >>>> I've been messing around with `PropertyMultipleSelectField`, but could >>>> not figure out how to properly configure it to pass it as `event_dates`. >>>> >>>> Thanks for your time. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "TurboGears" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected] <javascript:>. >>>> To post to this group, send email to [email protected] >>>> <javascript:>. >>>> Visit this group at https://groups.google.com/group/turbogears. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "TurboGears" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/turbogears. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/turbogears. For more options, visit https://groups.google.com/d/optout.

