예제 #1
0
def get_html_monthly_cal(
        day=None, month=None, year=None, calendar_name=None, loc_name=None,
        busy_days=[]):
    """ Display a monthly calendar as HTML.

    :kwarg day: optionnal day (as int). Defaults to current day
    :kwarg month: optionnal month (as int). Defaults to current month
    :kwarg year: optionnal year. Defaults to current year.
    :kwarg calendar_name: the name of the calendar to which the links
        should point.
    :kwarg loc_name: the name of the location to which the links
        should point.
    """
    cur_date = date.today()
    if not year:
        year = cur_date.year

    if not month:
        month = cur_date.month

    if not day:
        day = cur_date.day

    htmlcal = FedocalCalendar(day=day, year=year, month=month,
                              calendar_name=calendar_name,
                              loc_name=loc_name,
                              busy_days=busy_days)
    curmonth_cal_nf = htmlcal.formatmonth()

    return curmonth_cal_nf
예제 #2
0
 def test_formatmonthname(self):
     """ Test the formatmonthname function. """
     today = date.today()
     cal = FedocalCalendar(today.year, today.month, today.day)
     self.assertEqual(cal.formatmonthname(2012, 4),
         '<tr><th colspan="7" class="month"> April 2012 </th></tr>')
     self.assertEqual(cal.formatmonthname(2012, 4, False),
         '<tr><th colspan="7" class="month"> April </th></tr>')
예제 #3
0
 def test_formatday(self):
     """ Test the formatday function. """
     today = date.today()
     cal = FedocalCalendar(2013, 1, 6)
     self.assertEqual(
         cal.formatday(6, 1),
         '<td class="tue">6</td>')
     self.assertEqual(
         cal.formatday(7, 3),
         '<td class="thu">7</td>')
예제 #4
0
 def test_formatmonthname(self):
     """ Test the formatmonthname function. """
     today = date.today()
     cal = FedocalCalendar(today.year, today.month, today.day)
     self.assertEqual(
         cal.formatmonthname(2012, 4),
         '<tr><th colspan="7" class="month"> April 2012 </th></tr>')
     self.assertEqual(
         cal.formatmonthname(2012, 4, False),
         '<tr><th colspan="7" class="month"> April </th></tr>')
예제 #5
0
    def test_formatmonth(self):
        """ Test the formatmonth function. """
        cal = FedocalCalendar(2012, 1, 10)
        self.assertEqual(cal.formatmonth(),
            '<table class="month">\n<tr><th colspan="7" class="month"> '\
            'January 2012 </th></tr>\n<tr><td '\
            'class="noday">&nbsp;</td><td class="noday">&nbsp;'\
            '</td><td class="noday">&nbsp;</td><td class="noday">'\
            '&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">'\
            '&nbsp;</td><td class="sun">1</td></tr>\n<tr><td '\
            'class="mon">2</td><td class="tue">3</td><td class="wed">'\
            '4</td><td class="thu">5</td><td class="fri">6</td><td '\
            'class="sat">7</td><td class="sun">8</td></tr>\n<tr '\
            'class="current_week"><td class="mon">9</td><td '\
            'class="tue">10</td><td class="wed">11</td><td '\
            'class="thu">12</td><td class="fri">13</td><td '\
            'class="sat">14</td><td class="sun">15</td></tr>\n<tr><td'\
            ' class="mon">16</td><td class="tue">17</td><td '\
            'class="wed">18</td><td class="thu">19</td><td '\
            'class="fri">20</td><td class="sat">21</td><td '\
            'class="sun">22</td></tr>\n<tr><td class="mon">23</td>'\
            '<td class="tue">24</td><td class="wed">25</td><td '\
            'class="thu">26</td><td class="fri">27</td><td '\
            'class="sat">28</td><td class="sun">29</td></tr>\n<tr>'\
            '<td class="mon">30</td><td class="tue">31</td><td '\
            'class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'\
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'\
            '<td class="noday">&nbsp;</td></tr>\n</table>\n')

        self.assertEqual(cal.formatmonth(False),
            '<table class="month">\n<tr><th colspan="7" class="month">'\
            ' January </th></tr>\n<tr><td '\
            'class="noday">&nbsp;</td><td class="noday">&nbsp;'\
            '</td><td class="noday">&nbsp;</td><td class="noday">'\
            '&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">'\
            '&nbsp;</td><td class="sun">1</td></tr>\n<tr><td '\
            'class="mon">2</td><td class="tue">3</td><td class="wed">'\
            '4</td><td class="thu">5</td><td class="fri">6</td><td '\
            'class="sat">7</td><td class="sun">8</td></tr>\n<tr '\
            'class="current_week"><td class="mon">9</td><td '\
            'class="tue">10</td><td class="wed">11</td><td '\
            'class="thu">12</td><td class="fri">13</td><td '\
            'class="sat">14</td><td class="sun">15</td></tr>\n<tr><td'\
            ' class="mon">16</td><td class="tue">17</td><td '\
            'class="wed">18</td><td class="thu">19</td><td '\
            'class="fri">20</td><td class="sat">21</td><td '\
            'class="sun">22</td></tr>\n<tr><td class="mon">23</td>'\
            '<td class="tue">24</td><td class="wed">25</td><td '\
            'class="thu">26</td><td class="fri">27</td><td '\
            'class="sat">28</td><td class="sun">29</td></tr>\n<tr>'\
            '<td class="mon">30</td><td class="tue">31</td><td '\
            'class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'\
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'\
            '<td class="noday">&nbsp;</td></tr>\n</table>\n')
예제 #6
0
 def test_formatday(self):
     """ Test the formatday function. """
     today = date.today()
     cal = FedocalCalendar(today.year, today.month, today.day)
     self.assertEqual(cal.formatday(6, 1),
         '<td class="tue">6</td>')
     self.assertEqual(cal.formatday(7, 3),
         '<td class="thu">7</td>')
     self.assertEqual(cal.formatday(today.day, today.isoweekday() - 1),
         '<td class="%s today">%s</td>' % (
             today.strftime('%a').lower(), today.day)
             )
예제 #7
0
 def test_formatweek(self):
     """ Test the formatweek function. """
     today = TODAY
     cal = FedocalCalendar(today.year, today.month, today.day)
     output = cal.formatweek([(1, 1), (2, 2)]).replace(' today', '')
     self.assertEqual(
         output, '<tr><td class="tue">1</td><td class="wed">2</td></tr>')
     self.assertEqual(
         cal.formatweek([(0, 1), (1, 2)]).replace(' today', ''),
         '<tr><td class="noday">&nbsp;</td><td class="wed">1</td></tr>')
     output = cal.formatweek([(1, 1), (2, 2)], True).replace(' today', '')
     self.assertEqual(
         output, '<tr class="current_week"><td class="tue">1</td><td '
         'class="wed">2</td></tr>')
예제 #8
0
 def test_formatweek(self):
     """ Test the formatweek function. """
     today = TODAY
     cal = FedocalCalendar(today.year, today.month, today.day)
     output = cal.formatweek([(1, 1), (2, 2)]).replace(' today', '')
     self.assertEqual(
         output,
         '<tr><td class="tue">1</td><td class="wed">2</td></tr>')
     self.assertEqual(
         cal.formatweek([(0, 1), (1, 2)]),
         '<tr><td class="noday">&nbsp;</td><td class="wed">1</td></tr>')
     output = cal.formatweek([(1, 1), (2, 2)], True).replace(' today', '')
     self.assertEqual(
         output,
         '<tr class="current_week"><td class="tue">1</td><td '\
         'class="wed">2</td></tr>')
예제 #9
0
    def test_formatmonth(self):
        """ Test the formatmonth function. """
        cal = FedocalCalendar(2012, 1, 10)

        expcal = [
            '<table class="month">',
            '<tr><th colspan="7" class="month"> January 2012 </th></tr>',
            '<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="sun">1</td></tr>',
            '<tr><td class="mon">2</td><td class="tue">3</td>'
            '<td class="wed">4</td><td class="thu">5</td>'
            '<td class="fri">6</td><td class="sat">7</td>'
            '<td class="sun">8</td></tr>',
            '<tr class="current_week"><td class="mon">9</td>'
            '<td class="tue">10</td><td class="wed">11</td>'
            '<td class="thu">12</td><td class="fri">13</td>'
            '<td class="sat">14</td><td class="sun">15</td></tr>',
            '<tr><td class="mon">16</td><td class="tue">17</td>'
            '<td class="wed">18</td><td class="thu">19</td>'
            '<td class="fri">20</td><td class="sat">21</td>'
            '<td class="sun">22</td></tr>',
            '<tr><td class="mon">23</td><td class="tue">24</td>'
            '<td class="wed">25</td><td class="thu">26</td>'
            '<td class="fri">27</td><td class="sat">28</td>'
            '<td class="sun">29</td></tr>',
            '<tr><td class="mon">30</td><td class="tue">31</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td></tr>',
            '</table>', '']
        callines = cal.formatmonth().split('\n')

        self.assertEqual(len(expcal), len(callines))
        for cnt in range(0, len(callines)):
            self.assertEqual(expcal[cnt], callines[cnt])

        expcal = [
            '<table class="month">',
            '<tr><th colspan="7" class="month"> January </th></tr>',
            '<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="sun">1</td></tr>',
            '<tr><td class="mon">2</td><td class="tue">3</td>'
            '<td class="wed">4</td><td class="thu">5</td>'
            '<td class="fri">6</td><td class="sat">7</td>'
            '<td class="sun">8</td></tr>',
            '<tr class="current_week"><td class="mon">9</td>'
            '<td class="tue">10</td><td class="wed">11</td>'
            '<td class="thu">12</td><td class="fri">13</td>'
            '<td class="sat">14</td><td class="sun">15</td></tr>',
            '<tr><td class="mon">16</td><td class="tue">17</td>'
            '<td class="wed">18</td><td class="thu">19</td>'
            '<td class="fri">20</td><td class="sat">21</td>'
            '<td class="sun">22</td></tr>',
            '<tr><td class="mon">23</td><td class="tue">24</td>'
            '<td class="wed">25</td><td class="thu">26</td>'
            '<td class="fri">27</td><td class="sat">28</td>'
            '<td class="sun">29</td></tr>',
            '<tr><td class="mon">30</td><td class="tue">31</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td></tr>',
            '</table>', '']
        callines = cal.formatmonth(withyear=False).split('\n')

        self.assertEqual(len(expcal), len(callines))
        for cnt in range(0, len(callines)):
            self.assertEqual(expcal[cnt], callines[cnt])
예제 #10
0
    def test_formatmonth(self):
        """ Test the formatmonth function. """
        cal = FedocalCalendar(2012, 1, 10)

        expcal = [
            '<table class="month">',
            '<tr><th colspan="7" class="month"> January 2012 </th></tr>',
            '<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="sun">1</td></tr>',
            '<tr><td class="mon">2</td><td class="tue">3</td>'
            '<td class="wed">4</td><td class="thu">5</td>'
            '<td class="fri">6</td><td class="sat">7</td>'
            '<td class="sun">8</td></tr>',
            '<tr class="current_week"><td class="mon">9</td>'
            '<td class="tue">10</td><td class="wed">11</td>'
            '<td class="thu">12</td><td class="fri">13</td>'
            '<td class="sat">14</td><td class="sun">15</td></tr>',
            '<tr><td class="mon">16</td><td class="tue">17</td>'
            '<td class="wed">18</td><td class="thu">19</td>'
            '<td class="fri">20</td><td class="sat">21</td>'
            '<td class="sun">22</td></tr>',
            '<tr><td class="mon">23</td><td class="tue">24</td>'
            '<td class="wed">25</td><td class="thu">26</td>'
            '<td class="fri">27</td><td class="sat">28</td>'
            '<td class="sun">29</td></tr>',
            '<tr><td class="mon">30</td><td class="tue">31</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td></tr>', '</table>', ''
        ]
        callines = cal.formatmonth().split('\n')

        self.assertEqual(len(expcal), len(callines))
        for cnt in range(0, len(callines)):
            self.assertEqual(expcal[cnt], callines[cnt])

        expcal = [
            '<table class="month">',
            '<tr><th colspan="7" class="month"> January </th></tr>',
            '<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="sun">1</td></tr>',
            '<tr><td class="mon">2</td><td class="tue">3</td>'
            '<td class="wed">4</td><td class="thu">5</td>'
            '<td class="fri">6</td><td class="sat">7</td>'
            '<td class="sun">8</td></tr>',
            '<tr class="current_week"><td class="mon">9</td>'
            '<td class="tue">10</td><td class="wed">11</td>'
            '<td class="thu">12</td><td class="fri">13</td>'
            '<td class="sat">14</td><td class="sun">15</td></tr>',
            '<tr><td class="mon">16</td><td class="tue">17</td>'
            '<td class="wed">18</td><td class="thu">19</td>'
            '<td class="fri">20</td><td class="sat">21</td>'
            '<td class="sun">22</td></tr>',
            '<tr><td class="mon">23</td><td class="tue">24</td>'
            '<td class="wed">25</td><td class="thu">26</td>'
            '<td class="fri">27</td><td class="sat">28</td>'
            '<td class="sun">29</td></tr>',
            '<tr><td class="mon">30</td><td class="tue">31</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td><td class="noday">&nbsp;</td>'
            '<td class="noday">&nbsp;</td></tr>', '</table>', ''
        ]
        callines = cal.formatmonth(withyear=False).split('\n')

        self.assertEqual(len(expcal), len(callines))
        for cnt in range(0, len(callines)):
            self.assertEqual(expcal[cnt], callines[cnt])
예제 #11
0
 def test_formatday(self):
     """ Test the formatday function. """
     today = date.today()
     cal = FedocalCalendar(2013, 1, 6)
     self.assertEqual(cal.formatday(6, 1), '<td class="tue">6</td>')
     self.assertEqual(cal.formatday(7, 3), '<td class="thu">7</td>')