projectal.entities.location

 1from datetime import datetime
 2
 3import projectal
 4from projectal.entity import Entity
 5from projectal.linkers import *
 6
 7
 8class Location(
 9    Entity,
10    CompanyLinker,
11    CustomerLinker,
12    ProjectLinker,
13    StaffLinker,
14    NoteLinker,
15    CalendarLinker,
16    TagLinker,
17):
18    """
19    Implementation of the [Location](https://projectal.com/docs/latest/#tag/Location) API.
20    """
21
22    _path = "location"
23    _name = "location"
24    _links = [NoteLinker, CalendarLinker, TagLinker]
25    _links_reverse = [CompanyLinker, CustomerLinker, ProjectLinker, StaffLinker]
26
27    def calendar(self, begin=None, until=None):
28        """
29        Get the location's calendar.
30        `uuId`: The location `uuId`
31        `begin`: Start date in `yyyy-MM-dd` format
32        `until`: End date in `yyyy-MM-dd` format
33        """
34        if begin:
35            begin = datetime.strptime(begin, "%Y-%m-%d").date()
36        if until:
37            until = datetime.strptime(until, "%Y-%m-%d").date()
38
39        url = "/api/location/{}/calendar?".format(self["uuId"])
40        params = []
41        params.append("begin={}".format(begin)) if begin else None
42        params.append("until={}".format(until)) if until else None
43        url += "&".join(params)
44
45        cals = api.get(url)
46        cals = [projectal.Calendar(c) for c in cals]
47        return cals
 9class Location(
10    Entity,
11    CompanyLinker,
12    CustomerLinker,
13    ProjectLinker,
14    StaffLinker,
15    NoteLinker,
16    CalendarLinker,
17    TagLinker,
18):
19    """
20    Implementation of the [Location](https://projectal.com/docs/latest/#tag/Location) API.
21    """
22
23    _path = "location"
24    _name = "location"
25    _links = [NoteLinker, CalendarLinker, TagLinker]
26    _links_reverse = [CompanyLinker, CustomerLinker, ProjectLinker, StaffLinker]
27
28    def calendar(self, begin=None, until=None):
29        """
30        Get the location's calendar.
31        `uuId`: The location `uuId`
32        `begin`: Start date in `yyyy-MM-dd` format
33        `until`: End date in `yyyy-MM-dd` format
34        """
35        if begin:
36            begin = datetime.strptime(begin, "%Y-%m-%d").date()
37        if until:
38            until = datetime.strptime(until, "%Y-%m-%d").date()
39
40        url = "/api/location/{}/calendar?".format(self["uuId"])
41        params = []
42        params.append("begin={}".format(begin)) if begin else None
43        params.append("until={}".format(until)) if until else None
44        url += "&".join(params)
45
46        cals = api.get(url)
47        cals = [projectal.Calendar(c) for c in cals]
48        return cals

Implementation of the Location API.

def calendar(self, begin=None, until=None):
28    def calendar(self, begin=None, until=None):
29        """
30        Get the location's calendar.
31        `uuId`: The location `uuId`
32        `begin`: Start date in `yyyy-MM-dd` format
33        `until`: End date in `yyyy-MM-dd` format
34        """
35        if begin:
36            begin = datetime.strptime(begin, "%Y-%m-%d").date()
37        if until:
38            until = datetime.strptime(until, "%Y-%m-%d").date()
39
40        url = "/api/location/{}/calendar?".format(self["uuId"])
41        params = []
42        params.append("begin={}".format(begin)) if begin else None
43        params.append("until={}".format(until)) if until else None
44        url += "&".join(params)
45
46        cals = api.get(url)
47        cals = [projectal.Calendar(c) for c in cals]
48        return cals

Get the location's calendar. uuId: The location uuId begin: Start date in yyyy-MM-dd format until: End date in yyyy-MM-dd format