projectal.entities.project API documentation

# projectal.entities.project

View Source

     1from projectal.entity import Entity
     2from projectal.linkers import *
     3from projectal import api
     4
     5
     6class Project(
     7    Entity,
     8    LocationLinker,
     9    CustomerLinker,
    10    FileLinker,
    11    StageLinker,
    12    RebateLinker,
    13    StageListLinker,
    14    CompanyLinker,
    15    NoteLinker,
    16    TagLinker,
    17    TaskInProjectLinker,
    18):
    19    """
    20    Implementation of the [Project](https://projectal.com/docs/latest/#tag/Project) API.
    21    """
    22
    23    _path = "project"
    24    _name = "project"
    25    _links = [
    26        LocationLinker,
    27        CustomerLinker,
    28        FileLinker,
    29        StageLinker,
    30        RebateLinker,
    31        StageListLinker,
    32        NoteLinker,
    33        TagLinker,
    34        TaskInProjectLinker,
    35    ]
    36    _links_reverse = [CompanyLinker]
    37
    38    @classmethod
    39    def stage_order(cls, uuId, stages):
    40        """Reorder the Project's Stage links in a customer order."""
    41        url = "/api/project/stage_list/order?holder={}".format(uuId)
    42        api.post(url, stages)
    43        return True
    44
    45    @classmethod
    46    def autoschedule(cls, project, mode="ASAP"):
    47        """
    48        Autoschedule the project.
    49
    50        `project`: A Project entity
    51
    52        `mode`: `ASAP` or `ALAP`
    53        """
    54        url = "/api/project/schedule?mode={}".format(mode)
    55        api.post(url, [project])
    56        return True
    57
    58    def tasks(self):
    59        """Get a list of uuIds of all tasks in this Project."""
    60        payload = {
    61            "name": "Task in project",
    62            "type": "msql",
    63            "start": 0,
    64            "limit": -1,
    65            "holder": "{}".format(self["uuId"]),
    66            "select": [["PROJECT.TASK.uuId"]],
    67        }
    68        return [t[0] for t in api.query(payload)]

class Project(projectal.entity.Entity, projectal.linkers.LocationLinker, projectal.linkers.CustomerLinker, projectal.linkers.FileLinker, projectal.linkers.StageLinker, projectal.linkers.RebateLinker, projectal.linkers.StageListLinker, projectal.linkers.CompanyLinker, projectal.linkers.NoteLinker, projectal.linkers.TagLinker, projectal.linkers.TaskInProjectLinker): View Source

     7class Project(
     8    Entity,
     9    LocationLinker,
    10    CustomerLinker,
    11    FileLinker,
    12    StageLinker,
    13    RebateLinker,
    14    StageListLinker,
    15    CompanyLinker,
    16    NoteLinker,
    17    TagLinker,
    18    TaskInProjectLinker,
    19):
    20    """
    21    Implementation of the [Project](https://projectal.com/docs/latest/#tag/Project) API.
    22    """
    23
    24    _path = "project"
    25    _name = "project"
    26    _links = [
    27        LocationLinker,
    28        CustomerLinker,
    29        FileLinker,
    30        StageLinker,
    31        RebateLinker,
    32        StageListLinker,
    33        NoteLinker,
    34        TagLinker,
    35        TaskInProjectLinker,
    36    ]
    37    _links_reverse = [CompanyLinker]
    38
    39    @classmethod
    40    def stage_order(cls, uuId, stages):
    41        """Reorder the Project's Stage links in a customer order."""
    42        url = "/api/project/stage_list/order?holder={}".format(uuId)
    43        api.post(url, stages)
    44        return True
    45
    46    @classmethod
    47    def autoschedule(cls, project, mode="ASAP"):
    48        """
    49        Autoschedule the project.
    50
    51        `project`: A Project entity
    52
    53        `mode`: `ASAP` or `ALAP`
    54        """
    55        url = "/api/project/schedule?mode={}".format(mode)
    56        api.post(url, [project])
    57        return True
    58
    59    def tasks(self):
    60        """Get a list of uuIds of all tasks in this Project."""
    61        payload = {
    62            "name": "Task in project",
    63            "type": "msql",
    64            "start": 0,
    65            "limit": -1,
    66            "holder": "{}".format(self["uuId"]),
    67            "select": [["PROJECT.TASK.uuId"]],
    68        }
    69        return [t[0] for t in api.query(payload)]

Implementation of the Project API.

@classmethod
def stage_order(cls, uuId, stages): View Source

    39    @classmethod
    40    def stage_order(cls, uuId, stages):
    41        """Reorder the Project's Stage links in a customer order."""
    42        url = "/api/project/stage_list/order?holder={}".format(uuId)
    43        api.post(url, stages)
    44        return True

Reorder the Project's Stage links in a customer order.

@classmethod
def autoschedule(cls, project, mode='ASAP'): View Source

    46    @classmethod
    47    def autoschedule(cls, project, mode="ASAP"):
    48        """
    49        Autoschedule the project.
    50
    51        `project`: A Project entity
    52
    53        `mode`: `ASAP` or `ALAP`
    54        """
    55        url = "/api/project/schedule?mode={}".format(mode)
    56        api.post(url, [project])
    57        return True

Autoschedule the project.

`project`: A Project entity

`mode`: `ASAP` or `ALAP`

def tasks(self): View Source

    59    def tasks(self):
    60        """Get a list of uuIds of all tasks in this Project."""
    61        payload = {
    62            "name": "Task in project",
    63            "type": "msql",
    64            "start": 0,
    65            "limit": -1,
    66            "holder": "{}".format(self["uuId"]),
    67            "select": [["PROJECT.TASK.uuId"]],
    68        }
    69        return [t[0] for t in api.query(payload)]

Get a list of uuIds of all tasks in this Project.

##### Inherited Members

projectal.entity.Entity
  get
  update
  delete
  history
  create
  save
  clone
  list
  match
  match_startswith
  match_endswith
  match_one
  match_startswith_one
  match_endswith_one
  search
  query
  profile_get
  profile_set
  changes
  set_readonly
  get_link_definitions
  entity_name
projectal.linkers.LocationLinker
  link_location
  unlink_location
projectal.linkers.CustomerLinker
  link_customer
  unlink_customer
projectal.linkers.FileLinker
  link_file
  unlink_file
projectal.linkers.StageLinker
  link_stage
  unlink_stage
projectal.linkers.RebateLinker
  link_rebate
  unlink_rebate
projectal.linkers.StageListLinker
  link_stage_list
  unlink_stage_list
projectal.linkers.CompanyLinker
  link_company
  unlink_company
projectal.linkers.TagLinker
  link_tag
  unlink_tag
builtins.dict
  setdefault
  pop
  popitem
  keys
  items
  values
  fromkeys
  clear
  copy