[IMP]show timezone option, select bydefault and change timezone value according to selection.

bzr revid: vme@tinyerp.com-20140321064541-zvrnx1b9azgrjkh7
This commit is contained in:
Vidhin Mehta (OpenERP) 2014-03-21 12:15:41 +05:30
parent ec837facef
commit 2d3656fd35
3 changed files with 49 additions and 7 deletions

View File

@ -30,8 +30,21 @@ import re
import werkzeug.utils
controllers = controllers()
import pytz
from pytz import timezone
class website_event(http.Controller):
@http.route(['/website_event/change_time/'], type='json', auth="user", website=True)
def change_time(self, datum):
time_collection = eval(datum.get('time_collection'))
local_tz = pytz.timezone (datum.get('time_zone'))
new_list = []
for time in time_collection:
start_time = (time[0].replace(tzinfo=pytz.utc).astimezone(local_tz)).strftime('%H:%M')
end_time = (time[1].replace(tzinfo=pytz.utc).astimezone(local_tz)).strftime('%H:%M')
new_list.append(start_time +" - "+ end_time)
return new_list
@http.route(['/event/<model("event.event"):event>/track/<model("event.track"):track>'], type='http', auth="public", website=True, multilang=True)
def event_track_view(self, event, track, **post):
track_obj = request.registry.get('event.track')
@ -129,7 +142,7 @@ class website_event(http.Controller):
new_schedule = {}
location_object = request.registry.get('event.track.location')
event_track_obj = request.registry.get('event.track')
time_collection = []
#Make all possible timeslot for each day.
for track in fetch_tracks:
room_list.append(track[1])
@ -144,6 +157,7 @@ class website_event(http.Controller):
unsort_tracks[key] = OrderedDict()
for value in new_schedule[key]:
unsort_tracks[key][value[0].strftime('%H:%M')+" - "+value[1].strftime('%H:%M')] = []
time_collection.append([value[0],value[1]])
#Add track to its related time slot and day.
for track in fetch_tracks:
@ -174,7 +188,6 @@ class website_event(http.Controller):
'color': color,
'publish': not event_tracks.website_published
})
#Get All Locations and make room_list contain unique value.
room_list = list(set(room_list))
room_list.sort()
@ -204,6 +217,12 @@ class website_event(http.Controller):
format_date.append((datetime.datetime.strptime(skip, '%m-%d-%y')).strftime("%d %B, %Y"))
for loc in skip_td[skip].keys():
skip_td[skip][loc] = list(set(skip_td[skip][loc]))
timezone = []
for tt in pytz.common_timezones:
melbourne = pytz.timezone(tt)
timezone.append([melbourne.utcoffset(datetime.datetime.now()).total_seconds()/60, tt])
values = {
'event': event,
'main_object': event,
@ -211,7 +230,9 @@ class website_event(http.Controller):
'days': unsort_tracks,
'skip_td': skip_td,
'talks':talks,
'format_date':format_date
'format_date':format_date,
'timezone':timezone,
'time_collection':time_collection
}
return request.website.render("website_event_track.agenda", values)

View File

@ -1,4 +1,22 @@
$(document).ready(function() {
console.log(openerp);
var offset = -(new Date().getTimezoneOffset());
var time_collection = $("select#timezone").attr('data');
$("select#timezone").bind('change keyup', function(e){
openerp.jsonRpc('/website_event/change_time/', 'call', {
'datum': {'time_collection':time_collection,'time_zone':$(this).find("option:selected").text()},
}).done(function (msg) {
var change_time = $("td#change_time");
$.each(change_time, function(key, element){
$(element).text(msg[key]);
});
});
});
var select = $("select#timezone option").filter(function(){return this.value==offset}).first();
if(select){
select.attr("selected","selected");
$("select#timezone").trigger('change');
}
function set_value(td_contain){
var search_object = {};
$.each(td_contain, function(key, element2){

View File

@ -52,6 +52,11 @@
<section class="container">
<div class="row">
<div id="left_column">
<select id="timezone" t-att-data="time_collection">
<t t-foreach="timezone" t-as="time">
<option t-att-value="time[0]"><t t-esc="time[1]" /></option>
</t>
</select>
</div>
<div class="col-md-12" id="right_column">
<t t-foreach="days" t-as="day">
@ -76,7 +81,7 @@
<t t-foreach="days[day]" t-as="slot">
<t t-set="skip_it" t-value="skip_td[day].keys()"/>
<tr id="agenda_tr">
<td t-attf-style="width:#{10}%;"><t t-esc= "slot"/></td>
<td t-attf-style="width:#{10}%;" id = "change_time"><t t-esc= "slot"/></td>
<t t-foreach="room_list" t-as="room">
<t t-set="sid" t-value="not (room[0] in skip_it and slot in skip_td[day][room[0]])" />
<t t-if="sid">
@ -133,8 +138,6 @@
</section>
</t>
</template>
<template id="tracks">
<t t-call="website_event.event_details">
<div id="left_column">