Hours of operation
Examples of formatting Location hours of operation
Example of starting the formatter by passing primary hours of a location
{% set hours = location.hours_by_type.primary|hours_formatter %}
Additional options can be passed to the formatter to change its behavior. Example of passing in options
|hours_formatter(disable_special_hours=True)
disable_special_hours
(default False) - This option disables using special hours when listing the days' hours. By default, when outputting hours they will be contextual to any special hours coming up for a day. For example, if is Monday and there is special hours for this Thursday, it will adjust the hours listed to show the special hours on Thursday.
Each of the following methods have a few options for outputting the hours
hide_closed_days
(default False) - this option will exclude days that are closedgroup_days
(default False) - this option will group similar days that have the same hours to save the number of lines needed
Output hours one per line separated by
<br />
<p>{{ hours.as_br() }}</p>
<p>{{ hours.as_br(hide_closed_days=True) }}</p>
<p>{{ hours.as_br(group_days=True) }}</p>
For custom templating options. Below example of outputting the hours into a table.
<table>
{% for day in hours.filtered_days(hide_closed_days=True) %}
<tr>
<td>{{ day.label }}</td>
<td>{{ day.content }}</td>
</tr>
{% endfor %}
</table>
This can be used to list upcoming special hours dates and times for a location.
<table>
{% for day in hours.special_hours_days() %}
<tr>
<td>{{ day.label }}</td>
<td>{{ day.content }}</td>
</tr>
{% endfor %}
</table>
Example output
<table>
<tr>
<td>Dec 25</td>
<td>Closed</td>
</tr>
<tr>
<td>Jan 1</td>
<td>8:00 am - 12:00 pm</td>
</tr>
</table>
Additional options can be passed into the
special_hours_days
day_format
- Specify the format to be used for each day's label. Default is'%b %-d'
. Example of another would be%b %-d, %Y
which would output the days asJan 1, 2022
days_in_future
- Number of days into the future to get special hours. Default is30
to show upcoming special hours in the next 30 days.
Example
{{ hours.special_hours_days(day_format='%b %-d, %Y', days_in_future=90) }}
Output the content of todays hours
{{ hours.todays_hours }}
Check to see if all days within the week are closed. It returns True/False. Can be used to hide a section if there are no open hours and instead show a different message
{% if hours.all_days_closed() %}
<p>This location is closed this week</p>
{% endif %}
Check to see if this location is currently open. This uses the location timezone.
{% if hours.is_open_now(location=location) %}
<p>Open Now</p>
{% endif %}
Get the next "closing time". Only use this if you know that the location is currently open (using
is_open_now
).<p>Closes at: {{ hours.closes_next(location=location) }}</p>