コード例 #1
0
ファイル: tests.py プロジェクト: infrae/z3locales
    def test_get_formatted_date_datetime(self):
        # Test some dates from different locales
        dt = datetime(2005, 02, 01, 19, 13)

        fd = localdatetime.get_formatted_date(
            dt, size="short", locale="nl")
        self.assertEquals(u'1-2-05 19:13', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="medium", locale="nl")
        self.assertEquals(u'1-feb-2005 19:13:00', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="long", locale="nl")
        self.assertEquals(u'1 februari 2005 19:13:00 +000', fd)
コード例 #2
0
ファイル: tests.py プロジェクト: infrae/z3locales
    def test_get_formatted_date_invalid_locale(self):
        """If the local is invalid, it should fallback to english.
        """
        dt = datetime(2005, 02, 01, 19, 13)

        # Test invalid local
        fd = localdatetime.get_formatted_date(
            dt, size="long", locale="u1")
        self.assertEquals(u'February 1, 2005 7:13:00 PM +000', fd)
コード例 #3
0
 def introduction(self):
     # XXX Should not be done with the method of the Service (who
     # manages settings on how to display the date ?)
     date = localdatetime.get_formatted_date(
         self.selected_day, size="full",
         request=self.request, display_time=False)
     if self._day_events:
         return _(u"Events for ${date}", mapping=dict(date=date))
     return _(u"No events for ${date}", mapping=dict(date=date))
コード例 #4
0
ファイル: tests.py プロジェクト: infrae/z3locales
    def test_get_formatted_date_tuple(self):
        # test some dates from different locales
        dt = [int(p) for p in DateTime('2005-02-01 19:13').parts()[:6]]

        fd = localdatetime.get_formatted_date(
            dt, size="short", locale="nl")
        self.assertEquals(u'1-2-05 19:13', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="medium", locale="nl")
        self.assertEquals(u'1-feb-2005 19:13:00', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="long", locale="nl")
        self.assertEquals(u'1 februari 2005 19:13:00 +000', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="full", locale="nl")
        self.assertEquals(u'dinsdag 1 februari 2005 19:13:00 uur +000', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="short", locale="en")
        self.assertEquals(u'2/1/05 7:13 PM', fd)

        fd = localdatetime.get_formatted_date(
            dt, size="short", locale="en-za")
        self.assertEquals(u'2005/02/01 7:13 PM', fd)
コード例 #5
0
 def format_date(self, dt, display_time=True):
     """returns a formatted datetime string
        takes the service's locale setting into account
     """
     if not dt:
         return ''
     if not isinstance(dt, datetime):
         dt = dt.asdatetime()
     return localdatetime.get_formatted_date(
         dt,
         size=self._date_format,
         locale=self._locale,
         display_time=display_time)
コード例 #6
0
    def render(self, item):
        content = item.getObject()
        # XXX we should use publication_datetime on publishable, but
        # it is currently broken
        date = content.get_modification_datetime()
        datestr = ''
        if date:
            if hasattr(date, 'asdatetime'):
                date = date.asdatetime()
            datestr = localdatetime.get_formatted_date(
                date, size="medium", locale=self.locale)

            return '<span class="searchresult-date">%s</span>' % datestr
        return None
コード例 #7
0
    def render(self, item):
        content = item.getObject()
        # XXX we should use publication_datetime on publishable, but
        # it is currently broken
        date = content.get_modification_datetime()
        datestr = ''
        if date:
            if hasattr(date, 'asdatetime'):
                date = date.asdatetime()
            datestr = localdatetime.get_formatted_date(date,
                                                       size="medium",
                                                       locale=self.locale)

            return '<span class="searchresult-date">%s</span>' % datestr
        return None
コード例 #8
0
    def update(self, answer=None):
        need(IPollQuestionResources)
        # This code is too complicated and would need
        # simplification. This is all the logic that was in the
        # template before.
        now = datetime.now()
        locale_opts = {
            'size': 'full',
            'locale': get_locale_info(self.request),
            'display_time': False
        }
        self.question = self.content.get_question()
        self.has_voted = self.content.has_voted(self.request)
        self.show_results_not_ready = False

        if self.is_preview:
            # Preview: show poll and results
            self.show_poll_not_ready = False
            self.show_poll = True
            self.show_results = True
            self.show_outdated = False
        else:
            # Public view: show corresponding section depending of the
            # current time
            start_date = self.content.question_start_datetime()
            end_date = self.content.question_end_datetime()
            self.show_poll_not_ready = start_date is not None and start_date > now
            if self.show_poll_not_ready:
                self.poll_start_date = get_formatted_date(
                    start_date, **locale_opts)
            self.show_poll = ((start_date is not None and start_date < now)
                              and (end_date is None or end_date > now))
            start_date = self.content.result_start_datetime()
            end_date = self.content.result_end_datetime()
            self.show_outdated = end_date is not None and end_date < now
            self.show_results = ((start_date is not None and start_date < now)
                                 and (end_date is None or end_date > now))

        if self.show_poll:
            # We want to show the poll.
            if self.has_voted:
                # The user already voted, don't show the poll, even if
                # the dates are ok.
                self.show_poll = False
            else:
                if answer is not None:
                    # User just voted, register the code, and don't
                    # show the poll.
                    answer = str(answer, 'utf-8')
                    self.content.vote(self.request, answer)
                    self.has_voted = True
                    self.show_poll = False
                else:
                    # The user didn't vote yet. Really show poll.
                    self.answers = []
                    for index, answer in enumerate(self.content.get_answers()):
                        self.answers.append({
                            'title': answer,
                            'id': 'answer-%02d' % index
                        })

        if self.show_results:
            all_votes = self.content.get_votes()
            self.total_votes = sum(all_votes)
            self.results = []
            for answer, votes in zip(self.content.get_answers(), all_votes):
                percentage = 0
                if self.total_votes:
                    percentage = round((votes * 100.0) / self.total_votes)
                self.results.append({
                    'answer': answer,
                    'votes': votes,
                    'percentage': percentage
                })
        elif self.has_voted:
            # The user voted, but cannot see the results yet. Tell him
            # when he will be able to see them.

            # The result start and end date and the last fetch into
            # start_date, and end_date. Preview code doesn't fetch
            # them, but in preview the results are always shown.
            self.show_results_not_ready = True
            self.show_results_start_date = get_formatted_date(
                start_date, **locale_opts)
            self.show_results_end_date = None
            if end_date is not None:
                self.show_results_end_date = get_formatted_date(
                    end_date, **locale_opts)
コード例 #9
0
    def update(self, answer=None):
        need(IPollQuestionResources)
        # This code is too complicated and would need
        # simplification. This is all the logic that was in the
        # template before.
        now = datetime.now()
        locale_opts = {'size': 'full',
                       'locale': get_locale_info(self.request),
                       'display_time': False}
        self.question = self.content.get_question()
        self.has_voted = self.content.has_voted(self.request)
        self.show_results_not_ready = False

        if self.is_preview:
            # Preview: show poll and results
            self.show_poll_not_ready = False
            self.show_poll = True
            self.show_results = True
            self.show_outdated = False
        else:
            # Public view: show corresponding section depending of the
            # current time
            start_date = self.content.question_start_datetime()
            end_date = self.content.question_end_datetime()
            self.show_poll_not_ready = start_date is not None and start_date > now
            if self.show_poll_not_ready:
                self.poll_start_date = get_formatted_date(
                    start_date, **locale_opts)
            self.show_poll = (
                (start_date is not None and start_date < now) and
                (end_date is None or end_date > now))
            start_date = self.content.result_start_datetime()
            end_date = self.content.result_end_datetime()
            self.show_outdated = end_date is not None and end_date < now
            self.show_results = (
                (start_date is not None and start_date < now) and
                (end_date is None or end_date > now))

        if self.show_poll:
            # We want to show the poll.
            if self.has_voted:
                # The user already voted, don't show the poll, even if
                # the dates are ok.
                self.show_poll = False
            else:
                if answer is not None:
                    # User just voted, register the code, and don't
                    # show the poll.
                    answer = unicode(answer, 'utf-8')
                    self.content.vote(self.request, answer)
                    self.has_voted = True
                    self.show_poll = False
                else:
                    # The user didn't vote yet. Really show poll.
                    self.answers = []
                    for index, answer in enumerate(self.content.get_answers()):
                        self.answers.append({'title': answer,
                                             'id': 'answer-%02d' % index})

        if self.show_results:
            all_votes = self.content.get_votes()
            self.total_votes = sum(all_votes)
            self.results = []
            for answer, votes in zip(self.content.get_answers(), all_votes):
                percentage = 0
                if self.total_votes:
                    percentage = round((votes * 100.0)/ self.total_votes)
                self.results.append({'answer': answer,
                                     'votes': votes,
                                     'percentage': percentage})
        elif self.has_voted:
            # The user voted, but cannot see the results yet. Tell him
            # when he will be able to see them.

            # The result start and end date and the last fetch into
            # start_date, and end_date. Preview code doesn't fetch
            # them, but in preview the results are always shown.
            self.show_results_not_ready = True
            self.show_results_start_date = get_formatted_date(
                start_date, **locale_opts)
            self.show_results_end_date = None
            if end_date is not None:
                self.show_results_end_date = get_formatted_date(
                    end_date, **locale_opts)