Repository :
http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
---------------------------------------------------------------
commit e6cb607e1e89286ea5a7acd1a2e9e94bc57e8dd9
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Thu Nov 8 08:35:08 2012 +0100
Implement the meeting_date_end into the controler, forms and tests
---------------------------------------------------------------
fedocal/__init__.py | 8 ++++++++
fedocal/fedocallib/model.py | 12 +++++++++---
fedocal/forms.py | 3 +++
fedocal/tests/test_meeting.py | 9 +++++++++
4 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/fedocal/__init__.py b/fedocal/__init__.py
index 3ad1f0d..7e67688 100644
--- a/fedocal/__init__.py
+++ b/fedocal/__init__.py
@@ -293,10 +293,14 @@ def add_meeting(calendar_name):
region = form.meeting_region.data
if not calendarobj.calendar_regional_meetings or not region:
region = None
+ meeting_end_date = form.meeting_date_end.data
+ if not meeting_end_date:
+ meeting_end_date = form.meeting_date.date
meeting = Meeting(
meeting_name=form.meeting_name.data,
meeting_manager=manager,
meeting_date=form.meeting_date.data,
+ meeting_date_end=meeting_end_date,
meeting_time_start=datetime.time(int(
form.meeting_time_start.data)),
meeting_time_stop=datetime.time(int(
@@ -380,6 +384,10 @@ def edit_meeting(meeting_id):
meeting.meeting_manager = '%s,%s' % (
flask.g.fas_user.username, form.comanager.data)
meeting.meeting_date = form.meeting_date.data
+ meeting_end_date = form.meeting_date_end.data
+ if not meeting_end_date:
+ meeting_end_date = form.meeting_date.date
+ meeting.meeting_end_date = meeting_end_date
meeting.meeting_time_start = datetime.time(int(
form.meeting_time_start.data))
meeting_time_stop=datetime.time(int(
diff --git a/fedocal/fedocallib/model.py b/fedocal/fedocallib/model.py
index 66ae53a..c437de1 100644
--- a/fedocal/fedocallib/model.py
+++ b/fedocal/fedocallib/model.py
@@ -133,6 +133,7 @@ class Meeting(BASE):
calendar = relationship("Calendar")
meeting_manager = Column(String(160)) ##5 person max (32 * 5)
meeting_date = Column(Date, default=datetime.utcnow().date())
+ meeting_date_end = Column(Date, default=datetime.utcnow().date())
meeting_time_start = Column(Time, default=datetime.utcnow().time())
meeting_time_stop = Column(Time, default=datetime.utcnow().time())
meeting_information = Column(Text)
@@ -145,7 +146,8 @@ class Meeting(BASE):
recursion_ends = Column(Date, nullable=True, default=None)
def __init__(self, meeting_name, meeting_manager,
- meeting_date, meeting_time_start, meeting_time_stop,
+ meeting_date, meeting_date_end,
+ meeting_time_start, meeting_time_stop,
meeting_information, calendar_name, reminder_id=None,
meeting_region=None, recursion_frequency=None,
recursion_ends=None):
@@ -153,6 +155,7 @@ class Meeting(BASE):
self.meeting_name = meeting_name
self.meeting_manager = meeting_manager
self.meeting_date = meeting_date
+ self.meeting_date_end = meeting_date_end
self.meeting_time_start = meeting_time_start
self.meeting_time_stop = meeting_time_stop
self.meeting_information = meeting_information
@@ -182,6 +185,8 @@ class Meeting(BASE):
self.meeting_manager)
string = '%s\n "meeting_date": "%s",' % (string,
self.meeting_date)
+ string = '%s\n "meeting_date_end": "%s",' %
(string,
+ self.meeting_date_end)
string = '%s\n "meeting_time_start": "%s",' %
(string,
self.meeting_time_start)
string = '%s\n "meeting_time_stop": "%s",' %
(string,
@@ -223,8 +228,9 @@ class Meeting(BASE):
meeting.recursion_ends = self.recursion_ends
else:
meeting = Meeting(self.meeting_name, self.meeting_manager,
- self.meeting_date, self.meeting_time_start,
- self.meeting_time_stop, self.meeting_information,
+ self.meeting_date, self.meeting_date_end,
+ self.meeting_time_start, self.meeting_time_stop,
+ self.meeting_information,
self.calendar_name,
self.reminder_id,
self.meeting_region,
diff --git a/fedocal/forms.py b/fedocal/forms.py
index 81a3da8..e57a6bf 100644
--- a/fedocal/forms.py
+++ b/fedocal/forms.py
@@ -47,6 +47,8 @@ class AddMeetingForm(wtf.Form):
[wtf.validators.Required()])
meeting_date = wtf.DateField('Date', [wtf.validators.Required()])
+ meeting_date_end = wtf.DateField('End date',
+ [wtf.validators.optional()])
meeting_time_start = wtf.SelectField('Start time',
[wtf.validators.Required()],
@@ -104,6 +106,7 @@ class AddMeetingForm(wtf.Form):
self.meeting_name.data = meeting.meeting_name
self.meeting_date.data = meeting.meeting_date
+ self.meeting_date_end.data = meeting.meeting_date_end
self.meeting_time_start.data = start_hour
self.meeting_time_stop.data = stop_hour
self.information.data = meeting.meeting_information
diff --git a/fedocal/tests/test_meeting.py b/fedocal/tests/test_meeting.py
index ebea2d5..5a72354 100644
--- a/fedocal/tests/test_meeting.py
+++ b/fedocal/tests/test_meeting.py
@@ -60,6 +60,7 @@ class Meetingtests(Modeltests):
meeting_name='Fedora-fr-test-meeting',
meeting_manager='pingou, shaiton',
meeting_date=TODAY,
+ meeting_date_end=TODAY,
meeting_time_start=time(19, 00),
meeting_time_stop=time(20, 00),
meeting_information='This is a test meeting',
@@ -72,6 +73,7 @@ class Meetingtests(Modeltests):
meeting_name='test-meeting2',
meeting_manager='pingou',
meeting_date=TODAY + timedelta(days=10),
+ meeting_date_end=TODAY + timedelta(days=10),
meeting_time_start=time(14, 00),
meeting_time_stop=time(16, 00),
meeting_information='This is another test meeting',
@@ -85,6 +87,7 @@ class Meetingtests(Modeltests):
meeting_name='test-meeting3',
meeting_manager='test2',
meeting_date=TODAY - timedelta(days=16),
+ meeting_date_end=TODAY - timedelta(days=16),
meeting_time_start=time(14, 00),
meeting_time_stop=time(16, 00),
meeting_information='Test meeting with past end_recursion.',
@@ -100,6 +103,7 @@ class Meetingtests(Modeltests):
meeting_name='test-meeting-st-1',
meeting_manager='test',
meeting_date=TODAY + timedelta(days=1),
+ meeting_date_end=TODAY + timedelta(days=1),
meeting_time_start=time(14, 00),
meeting_time_stop=time(16, 00),
meeting_information='This is a test meeting at the same time',
@@ -113,6 +117,7 @@ class Meetingtests(Modeltests):
meeting_name='test-meeting-st-2',
meeting_manager='test',
meeting_date=TODAY + timedelta(days=1),
+ meeting_date_end=TODAY + timedelta(days=1),
meeting_time_start=time(14, 00),
meeting_time_stop=time(16, 00),
meeting_information='This is a second test meeting at the same
time',
@@ -127,6 +132,7 @@ class Meetingtests(Modeltests):
meeting_name='Another test meeting',
meeting_manager='pingou',
meeting_date=TODAY + timedelta(days=10),
+ meeting_date_end=TODAY + timedelta(days=10),
meeting_time_start=time(2, 00),
meeting_time_stop=time(3, 00),
meeting_information='This is a test meeting with recursion',
@@ -138,6 +144,7 @@ class Meetingtests(Modeltests):
meeting_name='Another test meeting2',
meeting_manager='pingou',
meeting_date=TODAY,
+ meeting_date_end=TODAY,
meeting_time_start=time(12, 00),
meeting_time_stop=time(13, 00),
meeting_information='This is a test meeting with recursion2',
@@ -157,6 +164,7 @@ class Meetingtests(Modeltests):
meeting_name='Test meeting with reminder',
meeting_manager='pingou',
meeting_date=TODAY + timedelta(days=11),
+ meeting_date_end=TODAY + timedelta(days=11),
meeting_time_start=time(11, 00),
meeting_time_stop=time(12, 00),
meeting_information='This is a test meeting with reminder',
@@ -176,6 +184,7 @@ class Meetingtests(Modeltests):
meeting_name='Test meeting with reminder and recursion',
meeting_manager='pingou',
meeting_date=TODAY + timedelta(days=12),
+ meeting_date_end=TODAY + timedelta(days=12),
meeting_time_start=time(10, 00),
meeting_time_stop=time(11, 00),
meeting_information='This is a test meeting with recursion and
reminder',