Stop using dtstart when dtend is not defined
Goocalendar supports to have None as value for end date so we must use it if dtend is not defined. Also it is better to fail directly on missing dtstart attribute. issue5786 review32431002
This commit is contained in:
1 parent
2e6c7ce418
commit
2b1412c835
2 files changed
+12
-9
No files matched your search
@@ -82,8 +82,8 @@ class ViewCalendar(View):
|
||||
self.screen.switch_view('form')
|
||||
|
||||
def on_event_released(self, goocalendar, event):
|
||||
dtstart = self.attributes.get('dtstart')
|
||||
dtend = self.attributes.get('dtend') or dtstart
|
||||
dtstart = self.attributes['dtstart']
|
||||
dtend = self.attributes.get('dtend')
|
||||
record = event.record
|
||||
group = record.group
|
||||
previous_start = record[dtstart].get(record)
|
||||
@@ -93,12 +93,12 @@ class ViewCalendar(View):
|
||||
new_start = event.start.date()
|
||||
new_end = event.end.date() if event.end else None
|
||||
if previous_start <= new_start:
|
||||
if new_end:
|
||||
if dtend:
|
||||
group.fields[dtend].set_client(record, new_end)
|
||||
group.fields[dtstart].set_client(record, new_start)
|
||||
else:
|
||||
group.fields[dtstart].set_client(record, new_start)
|
||||
if new_end:
|
||||
if dtend:
|
||||
group.fields[dtend].set_client(record, new_end)
|
||||
goocalendar.select(new_start)
|
||||
record.save()
|
||||
|
||||
@@ -19,7 +19,7 @@ class Calendar_(goocalendar.Calendar):
|
||||
self.current_domain_period = self.get_displayed_period()
|
||||
|
||||
def set_default_date(self, record, selected_date):
|
||||
dtstart = self.attrs.get('dtstart')
|
||||
dtstart = self.attrs['dtstart']
|
||||
record[dtstart].set(record, datetime.datetime.combine(selected_date,
|
||||
datetime.time(0)))
|
||||
|
||||
@@ -50,7 +50,7 @@ class Calendar_(goocalendar.Calendar):
|
||||
def current_domain(self):
|
||||
first_datetime, last_datetime = \
|
||||
self.current_domain_period.get_dates(True)
|
||||
dtstart = self.attrs.get('dtstart')
|
||||
dtstart = self.attrs['dtstart']
|
||||
dtend = self.attrs.get('dtend') or dtstart
|
||||
domain = ['OR',
|
||||
['AND', (dtstart, '>=', first_datetime),
|
||||
@@ -62,8 +62,8 @@ class Calendar_(goocalendar.Calendar):
|
||||
return domain
|
||||
|
||||
def display(self, group):
|
||||
dtstart = self.attrs.get('dtstart')
|
||||
dtend = self.attrs.get('dtend') or dtstart
|
||||
dtstart = self.attrs['dtstart']
|
||||
dtend = self.attrs.get('dtend')
|
||||
if self.screen.current_record:
|
||||
record = self.screen.current_record
|
||||
date = record[dtstart].get(record)
|
||||
@@ -81,7 +81,10 @@ class Calendar_(goocalendar.Calendar):
|
||||
continue
|
||||
|
||||
start = record[dtstart].get_client(record)
|
||||
end = record[dtend].get_client(record)
|
||||
if dtend:
|
||||
end = record[dtend].get_client(record)
|
||||
else:
|
||||
end = None
|
||||
midnight = datetime.time(0)
|
||||
all_day = False
|
||||
if not isinstance(start, datetime.datetime):
|
||||
|
||||
Reference in new issue
Block a user