MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/org/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/org/org-taskjuggler.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:08:05 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/org/org-taskjuggler.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\210\313\314\315\316\311\304\317\320\321\322&	\210\313\323\324\325\311\304\317\320\321\322&	\210\313\326\327\330\311\304\317\320\321\322&	\210\313\331\332\333\311\304\317\320\321\334&	\210\313\335\336\337\311\304\317\320\321\322&	\210\313\340\341\342\311\304\317\320\321\343&	\210\313\344\345\346\311\304\317\320\321\347&	\210\313\350\351\352\311\304\317\320\321\353&	\207" [require org org-exp custom-declare-group org-export-taskjuggler nil "Options for exporting Org-mode files to TaskJuggler." :tag "Org Export TaskJuggler" :group org-export custom-declare-variable org-export-taskjuggler-extension ".tjp" "Extension of TaskJuggler files." :version "24.1" :type string org-export-taskjuggler-project-tag "taskjuggler_project" "Tag, property or todo used to find the tree containing all\nthe tasks for the project." org-export-taskjuggler-resource-tag "taskjuggler_resource" "Tag, property or todo used to find the tree containing all the\nresources for the project." org-export-taskjuggler-target-version 2.4 "Which version of TaskJuggler the exporter is targeting." number org-export-taskjuggler-default-project-version "1.0" "Default version string for the project." org-export-taskjuggler-default-project-duration 280 "Default project duration if no start and end date have been defined\nin the root node of the task tree, i.e. the tree that has been marked\nwith `org-export-taskjuggler-project-tag'" integer org-export-taskjuggler-default-reports '("taskreport \"Gantt Chart\" {\n  headline \"Project Gantt Chart\"\n  columns hierarchindex, name, start, end, effort, duration, completed, chart\n  timeformat \"%Y-%m-%d\"\n  hideresource 1\n  loadunit shortauto\n}" "resourcereport \"Resource Graph\" {\n  headline \"Resource Allocation Graph\"\n  columns no, name, utilization, freeload, chart\n  loadunit shortauto\n  sorttasks startup\n  hidetask ~isleaf()\n}") "Default reports for the project." (repeat (string :tag "Report")) org-export-taskjuggler-default-global-properties "shift s40 \"Part time shift\" {\n  workinghours wed, thu, fri off\n}\n" "Default global properties for the project.  Here you typically\ndefine global properties such as shifts, accounts, rates,\nvacation, macros and flags.  Any property that is allowed within\nthe TaskJuggler file can be inserted.  You could for example\ninclude another TaskJuggler file.\n\nThe global properties are inserted after the project declaration\nbut before any resource and task declarations." (string :tag "Preamble")] 10)
#@63 Hook run at the end of TaskJuggler export, in the new buffer.
(defvar org-export-taskjuggler-final-hook nil (#$ . 3129))
#@675 Export parts of the current buffer as a TaskJuggler file.
The exporter looks for a tree with tag, property or todo that
matches `org-export-taskjuggler-project-tag' and takes this as
the tasks for this project.  The first node of this tree defines
the project properties such as project name and project period.
If there is a tree with tag, property or todo that matches
`org-export-taskjuggler-resource-tag' this three is taken as
resources for the project.  If no resources are specified, a
default resource is created and allocated to the project.  Also
the taskjuggler project will be created with default reports as
defined in `org-export-taskjuggler-default-reports'.
(defalias 'org-export-as-taskjuggler #[nil "\306\307!\210\310\300\"\210\311\312\313\314\315	\316\317\320%!!!\321\314\315\316\317\320%!\322\323\324
!!2P!3\3253!4p5\3266\316\21178\n\204G\327\330!\210\f\204X\331\332 B\3339B\334BBC\335\336\n@\"\204z\n@\335\331\f@\"A:7\n\336:B7B\2117\240\210*\335\337\n@\"\204\231\n@\340\341!;7\n\337;B7B\2117\240\210*\335\342\n@\"\204\267\n@<=7\n\342=B7B\2117\240\210*r4q\210\343 \210\3445\345\"\210\346\n@!\210>c\210\347c\210\f\3168\211?\203?@8\335\3508\"A@\351@!\210\3528!\210@6)?A\211?\204\333*\351\353!\210\3266\n\3167\211?\2037?@7\335\3507\"A@\351@!\210\3547!\210@6)?A\211?\204*\351\353!\210\355 \210\356 \210\357\360!\204L\306\361!\210p.	\207" [org-done-keywords org-export-taskjuggler-project-tag tasks org-export-taskjuggler-resource-tag resources buffer-file-name message "Exporting..." set-default org-taskjuggler-resolve-dependencies org-taskjuggler-assign-task-ids org-taskjuggler-compute-task-leafiness org-map-entries org-taskjuggler-components nil archive comment org-taskjuggler-assign-resource-ids expand-file-name file-name-sans-extension file-name-nondirectory find-file-noselect 0 error "No tasks specified" "resource_id" user-login-name "headline" (("level" . 1)) assoc "allocate" "start" format-time-string "%Y-%m-%d" "version" erase-buffer org-clone-local-variables "^org-" org-taskjuggler-open-project "\n" "level" org-taskjuggler-close-maybe org-taskjuggler-open-resource 1 org-taskjuggler-open-task org-taskjuggler-insert-reports save-buffer org-export-push-to-kill-ring "TaskJuggler" "Exporting... done" org-export-taskjuggler-extension filename buffer old-buffer org-export-taskjuggler-old-level task resource user-full-name resource-id time-string org-export-taskjuggler-default-project-version version org-export-taskjuggler-default-global-properties --dolist-tail-- level] 10 (#$ . 3257) nil])
#@87 Export the current buffer as a TaskJuggler file and open it
with the TaskJuggler GUI.
(defalias 'org-export-as-taskjuggler-and-open #[nil "\303\304 !\305\211\306Q\307	\310\n#+\207" [file-name process-name command buffer-file-name org-export-as-taskjuggler "TaskJugglerUI" " " start-process-shell-command nil] 5 (#$ . 5862) nil])
#@50 Return true if we are targeting TaskJuggler III.
(defalias 'org-taskjuggler-targeting-tj3-p #[nil "\301Y\207" [org-export-taskjuggler-target-version 3.0] 2 (#$ . 6201)])
#@96 Return true if the parent of the current node has a property
"ORDERED".  Return nil otherwise.
(defalias 'org-taskjuggler-parent-is-ordered-p #[nil "\212\300 \205\n\301`\302\")\207" [org-up-heading-safe org-entry-get "ORDERED"] 3 (#$ . 6378)])
#@161 Return an alist containing all the pertinent information for
the current node such as the headline, the level, todo state
information, all the properties, etc.
(defalias 'org-taskjuggler-components #[nil "\305 \306 \211A@\307\310\311\312	8\313\211%\314 \315\nBB\316BB\317\fBB\211-\207" [props components level headline parent-ordered org-entry-properties org-heading-components replace-regexp-in-string "\"" "\\\"" 4 t org-taskjuggler-parent-is-ordered-p "level" "headline" "parent-ordered"] 7 (#$ . 6630)])
#@234 Given a list of tasks return the same list assigning a unique id
and the full path to each task.  Taskjuggler takes hierarchical ids.
For that reason we have to make ids locally unique and we have to keep
a path to the current task.
(defalias 'org-taskjuggler-assign-task-ids #[(tasks) "\306\307\211\211\211\211\211\307\211\203\337@\310\311\n\"AW\203V\312\n
@\"Z\306W\203R\fC
B\fBT\211\202<*\202\271U\203w\312\n
@\"
\211\f@B\240\210)\f\240\210\202\271V\203\271Z\306W\203\242
\211A@\210\211A@\210T\211\202\211*\312\n
@\"
\211\f@B\240\210)\f\240\210\313\fB\nB\314\315\316\317!\320#B\nB\321	\nC\")A\211\204\307	.	\207" [tmp resolved-tasks task path unique-id unique-ids 0 nil assoc "level" org-taskjuggler-get-unique-id "unique-id" "path" mapconcat identity reverse "." append previous-level tasks --dolist-tail-- level --dotimes-limit-- #1=#:v #2=#:v] 8 (#$ . 7157)])
#@156 Figure out if each task is a leaf by looking at it's level,
and the level of its successor.  If the successor is higher (ie
deeper), then it's not a leaf.
(defalias 'org-taskjuggler-compute-task-leafiness #[(tasks) "\304	@\203B	@	A@\n\204\305\306BBB\202:\307\310\n\"A\307\310\"AX\2036\305\306BBB\202:B*	A\211\202\237)\207" [new-list tasks successor task nil "leaf-node" t assoc "level"] 5 (#$ . 8128)])
#@89 Given a list of resources return the same list, assigning a
unique id to each resource.
(defalias 'org-taskjuggler-assign-resource-ids #[(resources) "\306\211\n\306\211\203*\f@\307	\"\310
BB
	BB)\fA\211\204\f\306\210*\237*\207" [new-list unique-ids resources resource --dolist-tail-- unique-id nil org-taskjuggler-get-unique-id "unique-id"] 4 (#$ . 8560)])
(defalias 'org-taskjuggler-resolve-dependencies #[(tasks) "\306\307\211\211\f\307\211\203
@\310\311	\"A\310\312	\"A\310\313	\"A\310\314	\"A\211\2058\315\316\"\317\320\205E\321!\205N\321!\"\f\"\307W\203Z\306  W\203{	\nBT\211\202h*\202\301U\203\221\n@\n	\240\210\202\301V\203\301Z\306  W\203\270\n\211A@\210T\211\202\243*\n@\n	\240\210\203\313\204\320\203\336\322\323\310\324\"A\"B\203\356\312\325\326\327#B	B\320	C\".
A\211\204\307.\207" [resolved-tasks task siblings previous-level tasks --dolist-tail-- 0 nil assoc "level" "depends" "parent-ordered" "BLOCKER" string-match "previous-sibling" org-taskjuggler-resolve-explicit-dependencies append org-taskjuggler-tokenize-dependencies format "!%s" "unique-id" mapconcat identity ", " level depends parent-ordered blocker blocked-on-previous dependencies previous-sibling tmp --dotimes-limit--] 6])
#@239 Split a dependency property value DEPENDENCIES into the
individual dependencies and return them as a list while keeping
the optional arguments (such as gapduration) for the
dependencies.  A dependency will have to match `[-a-zA-Z0-9_]+'.
(defalias 'org-taskjuggler-tokenize-dependencies #[(dependencies) "\301\302\"\203	\303\207\301\304\"\203\305\224\305\225O\306\307\225\303O!B\207\310\311\312\"!\207" [dependencies string-match "^ *$" nil "^[ 	]*\\([-a-zA-Z0-9_]+\\([ 	]*{[^}]+}\\)?\\)[ 	,]*" 1 org-taskjuggler-tokenize-dependencies 0 error format "invalid dependency id %s"] 5 (#$ . 9910)])
#@420 For each dependency in DEPENDENCIES try to find a
corresponding task with a matching property "task_id" in TASKS.
Return a list containing the resolved links for all DEPENDENCIES
where a matching tasks was found.  If the dependency is
"previous-sibling" it is ignored (as this is dealt with in
`org-taskjuggler-resolve-dependencies'). If there is no matching
task the dependency is ignored and a warning is displayed .
(defalias 'org-taskjuggler-resolve-explicit-dependencies #[(dependencies tasks) "\205K@\306	!@\307\310\306	!A\311#\312\n\f\"@\313\232\203)\314A\f\"\202J
\203=\307\310
D\311#\314A\f\"B\202J\315\316\317\320\n\"\"\210\314A\f\",\207" [dependencies dependency id optional-attributes tasks path split-string mapconcat identity " " org-taskjuggler-find-task-with-id "previous-sibling" org-taskjuggler-resolve-explicit-dependencies display-warning org-export-taskjuggler format "No task with matching property \"task_id\" found for id %s"] 5 (#$ . 10519)])
#@77 Find ID in tasks.  If found return the path of task.  Otherwise
return nil.
(defalias 'org-taskjuggler-find-task-with-id #[(id tasks) "\304\305@\"A\304\306@\"A\204\307\202%\n\232\203 	\202%\310A\"*\207" [tasks path task-id id assoc "task_id" "path" nil org-taskjuggler-find-task-with-id] 4 (#$ . 11509)])
#@300 Return a unique id for an ITEM which can be a task or a resource.
The id is derived from the headline and made unique against
UNIQUE-IDS. If the (downcased) first token of the headline is not
unique try to add more (downcased) tokens of the headline or
finally add more underscore characters ("_").
(defalias 'org-taskjuggler-get-unique-id #[(item unique-ids) "\305\306\"A\307	!\310\n\211A@\227!\211\f\235\203.\n@\203.\311\310\n\211A@\227!Q\211\202\f\235\203<\311P\211\202/+\207" [item headline parts id unique-ids assoc "headline" split-string org-taskjuggler-clean-id "_"] 6 (#$ . 11834)])
#@60 Clean and return ID to make it acceptable for taskjuggler.
(defalias 'org-taskjuggler-clean-id #[(id) "\205
\301\302\303\301\304\305##\207" [id replace-regexp-in-string "[^a-zA-Z0-9_]" "_" "^\\([0-9]\\)" "_\\1"] 7 (#$ . 12450)])
#@218 Insert the beginning of a project declaration.  All valid
attributes from the PROJECT alist are inserted.  If no end date is
specified it is calculated
`org-export-taskjuggler-default-project-duration' days from now.
(defalias 'org-taskjuggler-open-project #[(project) "\306\307\"A\306\310\"A\306\311\"A\306\312\"A\306\313\"A\314\315	\n\f&c-\207" [project unique-id headline version start end assoc "unique-id" "headline" "version" "start" "end" format "project %s \"%s\" \"%s\" %s +%sd {\n }\n" org-export-taskjuggler-default-project-duration] 7 (#$ . 12689)])
#@84 Filter all nil elements from ITEMS and join the remaining ones
with separator "
".
(defalias 'org-taskjuggler-filter-and-join #[(items) "\302\303\"\211\205\304\305	\306#)\207" [items filtered-items remq nil mapconcat identity "\n"] 5 (#$ . 13271)])
#@216 Return all attribute as a single formatted string.  ITEM is an
alist representing either a resource or a task.  ATTRIBUTES is a
list of symbols.  Only entries from ITEM are considered that are
listed in ATTRIBUTES.
(defalias 'org-taskjuggler-get-attributes #[(item attributes) "\301\302\303\"!\207" [attributes org-taskjuggler-filter-and-join mapcar #[(attribute) "\302\303	\"!\207" [item attribute org-taskjuggler-filter-and-join org-taskjuggler-get-attribute] 4]] 4 (#$ . 13531)])
#@170 Return a list of strings containing the properly formatted
taskjuggler declaration for a given ATTRIBUTE in ITEM (an alist).
If the ATTRIBUTE is not in ITEM return nil.
(defalias 'org-taskjuggler-get-attribute #[(item attribute) "\204\302\207\303	!@@\232\203 \304\305\303	!@A#\306A	\"B\207\306A	\"\207" [item attribute nil symbol-name format "%s %s" org-taskjuggler-get-attribute] 4 (#$ . 14023)])
#@353 Insert the beginning of a resource declaration.  All valid
attributes from the RESOURCE alist are inserted.  If the RESOURCE
defines a property "resource_id" it will be used as the id for
this resource.  Otherwise it will use the ID property.  If neither
is defined it will calculate a unique id for the resource using
`org-taskjuggler-get-unique-id'.
(defalias 'org-taskjuggler-open-resource #[(resource) "\304\305\306\"A\206\305\307\"A\206\305\310\"A!\305\311\"A\312\313\314\n\315\316	\"\317\260c+\207" [resource attributes headline id org-taskjuggler-clean-id assoc "resource_id" "ID" "unique-id" "headline" (limits vacation shift booking efficiency journalentry rate) "resource " " \"" "\" {\n " org-taskjuggler-get-attributes "\n"] 8 (#$ . 14436)])
#@177 Translate effort strings into a format acceptable to taskjuggler,
i.e.  REAL UNIT. A valid effort string can be anything that is
accepted by `org-duration-string-to-minutes“.
(defalias 'org-taskjuggler-clean-effort #[(effort) "\204\207\303!\211\304\245\305\306\n\"*\207" [effort minutes hours org-duration-string-to-minutes 60.0 format "%.1fh"] 4 (#$ . 15211)])
#@86 Return a priority between 1 and 1000 based on PRIORITY, an
org-mode priority string.
(defalias 'org-taskjuggler-get-priority #[(priority) "\303\304	!Z\305_\nZ\245]\207" [org-lowest-priority priority org-highest-priority 1 string-to-char 1000] 4 (#$ . 15587)])
(defalias 'org-taskjuggler-open-task #[(task) "\306\307\"A\306\310\"A\311\306\"A!\306\312\"A\306\313\"A'\306\314\"A\211(\2050\315(!)\306\316\"A\211*+\235\203D\317\202I\306\320\"A,\306\321\"A-\306\322\"A.\306\323\"A\206\202\306\324\"\205\202\f\206\201\306\325\"A\206\201\306\326\"A\206\201\306\327\"A?/\3300\331	\332\n\333-\203\236.\203\236\334\335.\"\202\246
\205\246\334\335
\"'\205\272\334\336\337 \203\266\313\202\267\340'#,\205\304\334\341,\"\f\205\314\334\342\f\")\205\326\334\343)\"/\205\336\334\344!\3450\"\346\260
c.
\207" [task unique-id headline org-effort-property effort depends assoc "unique-id" "headline" org-taskjuggler-clean-effort "depends" "allocate" "PRIORITY" org-taskjuggler-get-priority "TODO" "100" "complete" "parent-ordered" "previous-sibling" "milestone" "leaf-node" "duration" "end" "period" (account start note duration endbuffer endcredit end flags journalentry length maxend maxstart minend minstart period reference responsible scheduling startbuffer startcredit statusnote) "task " " \"" "\" {\n" format " depends %s\n" " purge %s\n allocate %s\n" org-taskjuggler-targeting-tj3-p "allocations" " complete %s\n" " effort %s\n" " priority %s\n" " milestone\n" org-taskjuggler-get-attributes "\n" allocate priority-raw priority state org-done-keywords complete parent-ordered previous-sibling milestone attributes] 15])
(defalias 'org-taskjuggler-close-maybe #[(level) "	V\203\302c\210S\211\202	U\205\302c\207" [org-export-taskjuggler-old-level level "}\n"] 3])
(defalias 'org-taskjuggler-insert-reports #[nil "\303	\303\211\205\n@\211\304\261\210\nA\211\204\n\303+\207" [report org-export-taskjuggler-default-reports --dolist-tail-- nil "\n"] 3])
(provide 'org-taskjuggler)

MMCT - 2023