Hello Everybody !My boss wants me to improve the ticket's export function : add form_entry_values.valueI figured out the contraints :(scheme : Table.id => Table.foreignId )ost_ticket.ticket_id => ost_form_entry.object_id                                           ost_form_entry.id => ost_form_entry_values.entry_id                                                                                     ost_form_entry_values.valueAnd ost_from_entry_values.value is the field I need.So for one ticket i will have : - one ost_ticket.ticket_id - one ost_form_entry.object_id - several ost_form_entry.id - several ost_form_entry_values.valueSadly i don't know how to improve the function which select the data for the export : $tickets = $sql->models()            ->select_related('user', 'user__default_email', 'dept', 'staff',                'team', 'staff', 'cdata', 'topic', 'status', 'cdata__', 'sla')            ->options(QuerySet:)            ->annotate(array(                'collab_count' => TicketThread:()                    ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))                    ->aggregate(array('count' => SqlAggregate:('collaborators__id'))),                'attachment_count' => TicketThread:()                    ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))                    ->filter(array('entries__attachments__inline' => 0))                    ->aggregate(array('count' => SqlAggregate:('entries__attachments__id'))),                'thread_count' => TicketThread:()                    ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))                    ->exclude(array('entries__flags__hasbit' => ThreadEntry:))                    ->aggregate(array('count' => SqlAggregate:('entries__id'))),            ));return self:($tickets,            array(                'number' =>         __('Ticket Number'),                'created' =>        __('Date Created'),                'cdata.subject' =>  __('Subject'),                'user.name' =>      __('From'),                'user.default_email.address' => __('From Email'),                'cdata..priority_desc' => __('Priority'),                'dept:' => __('Department'),                'topic:' => __('Help Topic'),                'source' =>         __('Source'),                'status:' =>__('Current Status'),                'lastupdate' =>     __('Last Updated'),                'est_duedate' =>    __('Due Date'),                'isoverdue' =>      __('Overdue'),                'isanswered' =>     __('Answered'),                'staff:' => __('Agent Assigned'),                'team:' =>  __('Team Assigned'),                'thread_count' =>   __('Thread Count'),                'attachment_count' => __('Attachment Count'),                'sla.name' =>       __('SLA'),            ) + $cdata,            $how,            array('modify' => function(&$record, $keys) use ($fields) {                foreach ($fields as $k=>$f) {                    if (($i = array_search($k, $keys)) !== false) {                        $record = $f->export($f->to_php($record));                    }                }                return $record;            })            );Note :  the SLA field has been add by me and works.So if you have some ideas guys, it will be marvelous !

Write a Reply...