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

Implementation of the Project API.

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

    20    @classmethod
    21    def stage_order(cls, uuId, stages):
    22        """Reorder the Project's Stage links in a customer order."""
    23        url = '/api/project/stage_list/order?holder={}'.format(uuId)
    24        api.post(url, stages)
    25        return True

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

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

    27    @classmethod
    28    def autoschedule(cls, project, mode='ASAP'):
    29        """
    30        Autoschedule the project.
    31
    32        `project`: A Project entity
    33
    34        `mode`: `ASAP` or `ALAP`
    35        """
    36        url = '/api/project/schedule?mode={}'.format(mode)
    37        api.post(url, [project])
    38        return True

Autoschedule the project.

`project`: A Project entity

`mode`: `ASAP` or `ALAP`

def tasks(self): View Source

    40    def tasks(self):
    41        """Get a list of uuIds of all tasks in this Project."""
    42        payload = {
    43            "name": "Task in project",
    44            "type": "msql",
    45            "start": 0,
    46            "limit": -1,
    47            "holder": "{}".format(self['uuId']),
    48            "select": [
    49                [
    50                    "PROJECT.TASK.uuId"
    51                ]
    52            ],
    53        }
    54        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