[IMP]Refactore.
bzr revid: vme@tinyerp.com-20140325122327-9lqr308hz01q25p7
This commit is contained in:
parent
458991e011
commit
0881710694
|
@ -204,10 +204,6 @@ class event_track(osv.osv):
|
||||||
_group_by_full = {
|
_group_by_full = {
|
||||||
'stage_id': _read_group_stage_ids,
|
'stage_id': _read_group_stage_ids,
|
||||||
}
|
}
|
||||||
|
|
||||||
def _fetch_record(self, cr, uid, event_id, context=None):
|
|
||||||
return self.search(cr, uid, [('event_id','=',event_id),('date','!=',False),('duration','!=',False),('duration','!=',0)], context=context)
|
|
||||||
|
|
||||||
def _get_value(self, cr, uid, event, context=None):
|
def _get_value(self, cr, uid, event, context=None):
|
||||||
keys_for_table = {}
|
keys_for_table = {}
|
||||||
format_date = []
|
format_date = []
|
||||||
|
@ -216,13 +212,23 @@ class event_track(osv.osv):
|
||||||
rooms = []
|
rooms = []
|
||||||
talks = {}
|
talks = {}
|
||||||
skip_td = {}
|
skip_td = {}
|
||||||
|
domain = [('event_id','=',event.id),('date','!=',False),('duration','!=',False),('duration','!=',0)]
|
||||||
|
fields = ['id', 'duration', 'location_id', 'name', 'date', 'color', 'speaker_ids', 'website_published']
|
||||||
location_object = self.pool.get('event.track.location')
|
location_object = self.pool.get('event.track.location')
|
||||||
event_track_ids = self._fetch_record(cr, uid, event.id, context=context)
|
res_partner = self.pool.get('res.partner')
|
||||||
local_tz = pytz.timezone(event.timezone_of_event)
|
local_tz = pytz.timezone(event.timezone_of_event)
|
||||||
|
event_tracks = self.search_read(cr, uid, domain, fields, context=context)
|
||||||
|
def get_speaker_name(ids):
|
||||||
|
speaker_names = res_partner.name_get(cr, uid, ids, context=context)
|
||||||
|
string = "By "
|
||||||
|
for name in speaker_names:
|
||||||
|
string = string + name[1]
|
||||||
|
if(speaker_names[-1:][0][0] != name[0]):string = string + ", "
|
||||||
|
return string
|
||||||
def set_value(key, val):
|
def set_value(key, val):
|
||||||
sort_tracks[key][val]=[]
|
sort_tracks[key][val]=[]
|
||||||
for track in self.read(cr, uid, event_track_ids, ['date','duration'],context=context):
|
|
||||||
|
for track in event_tracks:
|
||||||
start_time, end_time, key = CONVERT_TIME(track['date'], track['duration'], local_tz)
|
start_time, end_time, key = CONVERT_TIME(track['date'], track['duration'], local_tz)
|
||||||
if not keys_for_table.has_key(key):
|
if not keys_for_table.has_key(key):
|
||||||
keys_for_table[key] = []
|
keys_for_table[key] = []
|
||||||
|
@ -233,9 +239,9 @@ class event_track(osv.osv):
|
||||||
|
|
||||||
[set_value(key, value[0].strftime('%H:%M')+" - "+value[1].strftime('%H:%M')) for key in keys_for_table.keys() for value in keys_for_table[key]]
|
[set_value(key, value[0].strftime('%H:%M')+" - "+value[1].strftime('%H:%M')) for key in keys_for_table.keys() for value in keys_for_table[key]]
|
||||||
|
|
||||||
for track in self.browse(cr, uid, event_track_ids, context=context):
|
for track in event_tracks:
|
||||||
if(track.location_id):room_list.append(track.location_id.id)
|
if(track['location_id']):room_list.append(track['location_id'][0])
|
||||||
start_time, end_time, key = CONVERT_TIME(track.date, track.duration, local_tz)
|
start_time, end_time, key = CONVERT_TIME(track['date'], track['duration'], local_tz)
|
||||||
secret_key = None
|
secret_key = None
|
||||||
row_span = 0
|
row_span = 0
|
||||||
for index, value in enumerate(keys_for_table[key]):
|
for index, value in enumerate(keys_for_table[key]):
|
||||||
|
@ -246,7 +252,9 @@ class event_track(osv.osv):
|
||||||
if value[1] == end_time and secret_key:
|
if value[1] == end_time and secret_key:
|
||||||
if not index == row_span:
|
if not index == row_span:
|
||||||
row_span = row_span - 1
|
row_span = row_span - 1
|
||||||
sort_tracks[key][secret_key].append({'object':track,'row_span': index - row_span, 'location':track.location_id.id})
|
track['row_span'] = index - row_span
|
||||||
|
track['speaker_ids'] = get_speaker_name(track['speaker_ids']) if len(track['speaker_ids'])else ""
|
||||||
|
sort_tracks[key][secret_key].append(track)
|
||||||
|
|
||||||
for room in list(set(room_list)):
|
for room in list(set(room_list)):
|
||||||
if room:rooms.append([room, location_object.browse(cr, uid, room).name])
|
if room:rooms.append([room, location_object.browse(cr, uid, room).name])
|
||||||
|
@ -257,14 +265,14 @@ class event_track(osv.osv):
|
||||||
format_date.append((datetime.datetime.strptime(track, '%m-%d-%y')).strftime("%d %B, %Y"))
|
format_date.append((datetime.datetime.strptime(track, '%m-%d-%y')).strftime("%d %B, %Y"))
|
||||||
key1 = sort_tracks[track].keys()
|
key1 = sort_tracks[track].keys()
|
||||||
for tra in sort_tracks[track].keys():
|
for tra in sort_tracks[track].keys():
|
||||||
sort_tracks[track][tra] = sorted(sort_tracks[track][tra], key=lambda x: x['location'])
|
sort_tracks[track][tra] = sorted(sort_tracks[track][tra], key=lambda x: x['location_id'])
|
||||||
for i in sort_tracks[track][tra]:
|
for i in sort_tracks[track][tra]:
|
||||||
if i['row_span']:
|
if i['row_span']:
|
||||||
skip_time = key1[key1.index(tra)+1: key1.index(tra)+i['row_span']]
|
skip_time = key1[key1.index(tra)+1: key1.index(tra)+i['row_span']]
|
||||||
if not skip_td[track].has_key(i['location']):
|
if not skip_td[track].has_key(i['location_id'][0]):
|
||||||
skip_td[track] [i['location']] = []
|
skip_td[track] [i['location_id'][0]] = []
|
||||||
skip_td[track][i['location']] = skip_td[track] [i['location']] + skip_time
|
skip_td[track][i['location_id'][0]] = skip_td[track] [i['location_id'][0]] + skip_time
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'event': event,
|
'event': event,
|
||||||
'main_object': event,
|
'main_object': event,
|
||||||
|
|
|
@ -86,39 +86,28 @@
|
||||||
</t>
|
</t>
|
||||||
<t t-if="len(days[day][slot])">
|
<t t-if="len(days[day][slot])">
|
||||||
<t t-set="record" t-value="days[day][slot][index]" />
|
<t t-set="record" t-value="days[day][slot][index]" />
|
||||||
<t t-if="not record['object'].location_id and for_all" >
|
<t t-if="not record['location_id'] and for_all" >
|
||||||
<t t-set="for_all" t-value="False"/>
|
<t t-set="for_all" t-value="False"/>
|
||||||
<td t-if="sid" id="seach_enable" t-att-colspan="len(room_list)" t-attf-class="event_color_#{record['object'].color} text-center">
|
<td t-if="sid" id="seach_enable" t-att-colspan="len(room_list)" t-attf-class="event_color_#{record['color']} text-center">
|
||||||
<img t-if="not record['object'].website_published" title="Not Published" style="width:10px; height:10px" src="/web/static/src/img/icons/gtk-no.png" />
|
<img t-if="not record['website_published']" title="Not Published" style="width:10px; height:10px" src="/web/static/src/img/icons/gtk-no.png" />
|
||||||
<a t-attf-href="/event/#{ slug(event) }/track/#{ slug([record['object'].id, record['object'].name]) }"> <t t-esc="record['object'].name" /> </a>
|
<a t-attf-href="/event/#{ slug(event) }/track/#{ slug([record['id'], record['name']]) }"> <t t-esc="record['name']" /> </a>
|
||||||
<t t-foreach="record['object'].speaker_ids" t-as="speaker">
|
<br/><small class="text-muted"> <t t-esc="record['speaker_ids']" /></small>
|
||||||
<small class="text-muted">
|
|
||||||
<t t-if="speaker == record['object'].speaker_ids[:1][0]"><br/>By </t>
|
|
||||||
<t t-esc="speaker.name"/>
|
|
||||||
<t t-if=" speaker.id !=record['object'].speaker_ids[:1][0].id">,</t>
|
|
||||||
</small>
|
|
||||||
</t>
|
|
||||||
</td>
|
</td>
|
||||||
</t>
|
</t>
|
||||||
<t t-if="record['object'].location_id.id != room[0] and for_all" >
|
<t t-if="record['location_id']">
|
||||||
<td t-attf-style="width: #{td_width}px;">
|
<t t-if="record['location_id'][0] != room[0] and for_all" >
|
||||||
</td>
|
<td t-attf-style="width: #{td_width}px;">
|
||||||
</t>
|
</td>
|
||||||
<t t-if="record['object'].location_id.id == room[0]" >
|
</t>
|
||||||
<td t-att-rowspan="record['row_span']" t-attf-style="width: #{td_width}px;"
|
<t t-if="record['location_id'][0] == room[0]" >
|
||||||
t-attf-class="event_color_#{record['object'].color}" id="seach_enable">
|
<td t-att-rowspan="record['row_span']" t-attf-style="width: #{td_width}px;" t-attf-class="event_color_#{record['color']}" id="seach_enable">
|
||||||
<img t-if="not record['object'].website_published" title="Not Published" style="width:10px; height:10px" src="/web/static/src/img/icons/gtk-no.png" />
|
<img t-if="not record['website_published']" title="Not Published" style="width:10px; height:10px" src="/web/static/src/img/icons/gtk-no.png" />
|
||||||
<a t-attf-href="/event/#{ slug(event) }/track/#{ slug([record['object'].id, record['object'].name]) }"> <t t-esc="record['object'].name" /> </a>
|
<a t-attf-href="/event/#{ slug(event) }/track/#{ slug([record['id'], record['name']]) }"> <t t-esc="record['name']" /> </a>
|
||||||
<t t-foreach="record['object'].speaker_ids" t-as="speaker">
|
<br/><small class="text-muted"> <t t-esc="record['speaker_ids']" /></small>
|
||||||
<small class="text-muted">
|
</td>
|
||||||
<t t-if="speaker == record['object'].speaker_ids[:1][0]"><br/>By </t>
|
<t t-if="record['id'] != days[day][slot][-1]['id']" >
|
||||||
<t t-esc="speaker.name"/>
|
<t t-set="index" t-value="index + 1"/>
|
||||||
<t t-if=" speaker.id !=record['object'].speaker_ids[:1][0].id">,</t>
|
|
||||||
</small>
|
|
||||||
</t>
|
</t>
|
||||||
</td>
|
|
||||||
<t t-if="record['object'].id != days[day][slot][-1]['object'].id" >
|
|
||||||
<t t-set="index" t-value="index + 1"/>
|
|
||||||
</t>
|
</t>
|
||||||
</t>
|
</t>
|
||||||
</t>
|
</t>
|
||||||
|
|
Loading…
Reference in New Issue