2017-04-24 15:51:12 +00:00
|
|
|
# -*- coding:utf-8 -*
|
|
|
|
#
|
|
|
|
# Copyright 2016,2017
|
|
|
|
# - Skia <skia@libskia.so>
|
2017-05-09 12:25:25 +00:00
|
|
|
# - Sli <antoine@bartuccio.fr>
|
2017-04-24 15:51:12 +00:00
|
|
|
#
|
|
|
|
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
|
|
|
|
# http://ae.utbm.fr.
|
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or modify it under
|
|
|
|
# the terms of the GNU General Public License a published by the Free Software
|
|
|
|
# Foundation; either version 3 of the License, or (at your option) any later
|
|
|
|
# version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
|
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
|
|
# details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License along with
|
|
|
|
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
|
|
|
|
# Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
2017-10-06 15:28:51 +00:00
|
|
|
import phonenumbers
|
|
|
|
|
2016-01-08 15:14:54 +00:00
|
|
|
from django import template
|
|
|
|
from django.template.defaultfilters import stringfilter
|
|
|
|
from django.utils.safestring import mark_safe
|
2017-05-09 12:25:25 +00:00
|
|
|
from core.scss.processor import ScssProcessor
|
2016-01-08 15:14:54 +00:00
|
|
|
|
2016-12-24 00:41:49 +00:00
|
|
|
from core.markdown import markdown as md
|
2016-01-08 15:14:54 +00:00
|
|
|
|
|
|
|
register = template.Library()
|
|
|
|
|
2017-06-12 07:42:03 +00:00
|
|
|
|
2016-01-08 15:14:54 +00:00
|
|
|
@register.filter(is_safe=False)
|
|
|
|
@stringfilter
|
|
|
|
def markdown(text):
|
2018-10-04 19:29:19 +00:00
|
|
|
return mark_safe('<div class="markdown">%s</div>' % md(text))
|
2016-01-08 15:14:54 +00:00
|
|
|
|
2018-10-04 19:29:19 +00:00
|
|
|
|
|
|
|
@register.filter(name="phonenumber")
|
|
|
|
def phonenumber(value, country="FR", format=phonenumbers.PhoneNumberFormat.NATIONAL):
|
2017-10-06 15:28:51 +00:00
|
|
|
"""
|
|
|
|
This filter is kindly borrowed from https://github.com/foundertherapy/django-phonenumber-filter
|
|
|
|
"""
|
|
|
|
value = str(value)
|
|
|
|
try:
|
|
|
|
parsed = phonenumbers.parse(value, country)
|
|
|
|
return phonenumbers.format_number(parsed, format)
|
|
|
|
except phonenumbers.NumberParseException as e:
|
|
|
|
return value
|
2017-06-12 07:42:03 +00:00
|
|
|
|
2018-10-04 19:29:19 +00:00
|
|
|
|
2016-09-08 01:29:49 +00:00
|
|
|
@register.filter()
|
|
|
|
@stringfilter
|
|
|
|
def datetime_format_python_to_PHP(python_format_string):
|
|
|
|
"""
|
|
|
|
Given a python datetime format string, attempts to convert it to the nearest PHP datetime format string possible.
|
|
|
|
"""
|
2018-10-04 19:29:19 +00:00
|
|
|
python2PHP = {
|
|
|
|
"%a": "D",
|
|
|
|
"%a": "D",
|
|
|
|
"%A": "l",
|
|
|
|
"%b": "M",
|
|
|
|
"%B": "F",
|
|
|
|
"%c": "",
|
|
|
|
"%d": "d",
|
|
|
|
"%H": "H",
|
|
|
|
"%I": "h",
|
|
|
|
"%j": "z",
|
|
|
|
"%m": "m",
|
|
|
|
"%M": "i",
|
|
|
|
"%p": "A",
|
|
|
|
"%S": "s",
|
|
|
|
"%U": "",
|
|
|
|
"%w": "w",
|
|
|
|
"%W": "W",
|
|
|
|
"%x": "",
|
|
|
|
"%X": "",
|
|
|
|
"%y": "y",
|
|
|
|
"%Y": "Y",
|
|
|
|
"%Z": "e",
|
|
|
|
}
|
2016-09-08 01:29:49 +00:00
|
|
|
|
|
|
|
php_format_string = python_format_string
|
|
|
|
for py, php in python2PHP.items():
|
|
|
|
php_format_string = php_format_string.replace(py, php)
|
|
|
|
return php_format_string
|
2016-01-08 15:14:54 +00:00
|
|
|
|
2017-06-12 07:42:03 +00:00
|
|
|
|
2017-05-09 12:25:25 +00:00
|
|
|
@register.simple_tag()
|
|
|
|
def scss(path):
|
2017-05-10 08:58:51 +00:00
|
|
|
"""
|
2020-08-27 13:59:42 +00:00
|
|
|
Return path of the corresponding css file after compilation
|
2017-05-10 08:58:51 +00:00
|
|
|
"""
|
2017-05-09 12:25:25 +00:00
|
|
|
processor = ScssProcessor(path)
|
2017-06-10 14:52:03 +00:00
|
|
|
return processor.get_converted_scss()
|