aboutsummaryrefslogtreecommitdiff
path: root/resumejson_converter/filters.py
blob: 1ed37b602984b041766023651fcd293f93e22700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from datetime import datetime
from babel.dates import format_date

import resumejson_converter.utils.templates as utemplates


def dateedit(startDate, endDate):
    """
    Return the date in special format.

    If only the start date is specified: 2019 - Auj.

    >>> dateedit("2019-01-01", "")
    "2019 - Auj."

    Else if the year of the start date and the year of the end data are the
    same: 2019

    >>> dateedit("2019-01-01", "2019-02-02")
    "2019"

    Else if the year of start date are not the same that the year of the end
    date: 2017 - 2019

    >>> datetime("2019-01-01", "2017-05-01")
    "2019 - 2017"
    """
    startDateTime = datetime.strptime(startDate, '%Y-%m-%d')
    if endDate == "":
        return "{:%Y} - Auj.".format(startDateTime)
    else:
        endDateTime = datetime.strptime(endDate, '%Y-%m-%d')
        diffDate = endDateTime - startDateTime
        if startDateTime.strftime("%Y") == endDateTime.strftime("%Y"):
            return "{:%Y}".format(startDateTime)
        else:
            return "{:%Y} - {:%Y}".format(startDateTime, endDateTime)


def datediff(title, startDate, endDate, showDiff=True):
    """
    Return time passed between two dates after a text.

    >>> datediff("Hello World", "2019-01-02", "2019-06-02")
    'Hello World - 5 mois'
    """
    if showDiff and endDate != "":
        startDateTime = datetime.strptime(startDate, '%Y-%m-%d')
        endDateTime = datetime.strptime(endDate, '%Y-%m-%d')
        diffDate = endDateTime - startDateTime
        period = utemplates.td_format(diffDate).split(',')[0]
        return "{} - {}".format(title, period)
    else:
        return "{}".format(title)


def birthday(date):
    """
    Return a date in french format.

    >>> birthday("1990-10-25")
    '25 octobre 1990'
    """
    date = datetime.strptime(date, '%Y-%m-%d')
    return format_date(date, format='long', locale='fr')


def clean(phone):
    """
    Return phone number in french format.

    >>> clean("0011223344")
    '00 11 22 33 44'
    """
    phone = [phone[num:num+2] for num in range(0, len(phone), 2)]
    return " ".join(phone)