def _create_ptask(self): parent = PTaskSpec.parent(self.spec) name = PTaskSpec.name(self.spec) # create if not self.ptask: try: self.logger.debug("Creating ptask: " + str(self.spec)) self._ptask = PTask.create( name, self.ptask_type, self.description, creator_username=self.creator, parent_spec=parent, start_date=str(self.start_date), due_date=str(self.due_date), ) except PTaskError as e: raise ActionError("Failed to create ptask: " + str(e)) # update else: try: self.logger.debug("Updating ptask: " + str(self.spec)) self.ptask.update( description=self.description, start_date=str(self.start_date), due_date=str(self.due_date), ) except PTaskError as e: raise ActionError("Failed to update ptask: " + str(e))
def get_default_product_name(): name = "Comp" ptask_area = PTaskArea.current() if ptask_area: name = PTaskSpec.name(ptask_area.spec) + name return name
def __init__(self, spec, ptask_type=None, description=None, creator=None, start_date=None, due_date=None, source=None, force=True): super(PTaskCreateAction, self).__init__( spec, ptask_type=ptask_type, description=description, creator=creator, start_date=start_date, due_date=due_date, source=source, force=force, ) # allow calling code to override the target to specify the ptask type # to create if ptask_type is None: if self.__class__.target_type is not 'ptask': ptask_type = self.__class__.target_type else: raise ActionError("PTask type is required.") # do some initial validation on the supplied spec parent = PTaskSpec.parent(spec) if parent != "": try: parent = PTask.get(parent) except PTaskError: raise ActionError("Parent ptask does not exist: " + parent) name = PTaskSpec.name(spec) try: name = validate_ptask_name(name) except PTaskError as e: raise ActionError("Invalid ptask name: " + str(e)) # input self._spec = spec self._ptask_type = ptask_type self._description = description self._creator = creator self._start_date = start_date self._due_date = due_date self._source = source self._force = force # to create self._ptask = None self._ptask_area = None self._ptask_version = None