class WeekMixin

from django.views.generic.dates import WeekMixin
Hierarchy diagram Documentation Source code
Mixin for views manipulating week-based data.

Attributes

  Defined in
week = None WeekMixin
week_format = '%U' WeekMixin
Expand Collapse

Methods

def _get_current_week(self, date): WeekMixin

Return the start date of the current interval.
216
217
218
def _get_current_week(self, date):
    """Return the start date of the current interval."""
    return date - datetime.timedelta(self._get_weekday(date))

def _get_next_week(self, date): WeekMixin

Return the start date of the next interval.

The interval is defined by start date <= item date < next start date.
205
206
207
208
209
210
211
212
213
def _get_next_week(self, date):
    """
    Return the start date of the next interval.
    The interval is defined by start date <= item date < next start date.
    """
    try:
        return date + datetime.timedelta(days=7 - self._get_weekday(date))
    except OverflowError:
        raise Http404(_("Date out of range"))

def _get_weekday(self, date): WeekMixin

Return the weekday for a given date.

The first day according to the week format is 0 and the last day is 6.
220
221
222
223
224
225
226
227
228
229
230
231
def _get_weekday(self, date):
    """
    Return the weekday for a given date.
    The first day according to the week format is 0 and the last day is 6.
    """
    week_format = self.get_week_format()
    if week_format in {"%W", "%V"}:  # week starts on Monday
        return date.weekday()
    elif week_format == "%U":  # week starts on Sunday
        return (date.weekday() + 1) % 7
    else:
        raise ValueError("unknown week format: %s" % week_format)

def get_next_week(self, date): WeekMixin

Get the next valid week.
197
198
199
def get_next_week(self, date):
    """Get the next valid week."""
    return _get_next_prev(self, date, is_previous=False, period="week")

def get_previous_week(self, date): WeekMixin

Get the previous valid week.
201
202
203
def get_previous_week(self, date):
    """Get the previous valid week."""
    return _get_next_prev(self, date, is_previous=True, period="week")

def get_week(self): WeekMixin

Return the week for which this view should display data.
184
185
186
187
188
189
190
191
192
193
194
195
def get_week(self):
    """Return the week for which this view should display data."""
    week = self.week
    if week is None:
        try:
            week = self.kwargs["week"]
        except KeyError:
            try:
                week = self.request.GET["week"]
            except KeyError:
                raise Http404(_("No week specified"))
    return week

def get_week_format(self): WeekMixin

Get a week format string in strptime syntax to be used to parse the
week from url variables.
177
178
179
180
181
182
def get_week_format(self):
    """
    Get a week format string in strptime syntax to be used to parse the
    week from url variables.
    """
    return self.week_format