From 2e70eb6f05af2ffa4fda8e450edd52e6478f10ab Mon Sep 17 00:00:00 2001 From: "guillaume gallant (guga)" <“guga@odoo.com”~> Date: Fri, 6 Dec 2024 16:43:27 +0100 Subject: [PATCH] [ADD] Project: New page about task dependencies task-4413833 --- .../applications/services/project/tasks.rst | 1 + .../project/tasks/task_dependencies.rst | 40 ++++++++++++++++++ .../task_dependencies/task-dependency.png | Bin 0 -> 16450 bytes 3 files changed, 41 insertions(+) create mode 100644 content/applications/services/project/tasks/task_dependencies.rst create mode 100644 content/applications/services/project/tasks/task_dependencies/task-dependency.png diff --git a/content/applications/services/project/tasks.rst b/content/applications/services/project/tasks.rst index 72e9226a7a..3174cd924e 100644 --- a/content/applications/services/project/tasks.rst +++ b/content/applications/services/project/tasks.rst @@ -11,3 +11,4 @@ Task management tasks/task_creation tasks/recurring_tasks tasks/sub-tasks + tasks/task_dependencies diff --git a/content/applications/services/project/tasks/task_dependencies.rst b/content/applications/services/project/tasks/task_dependencies.rst new file mode 100644 index 0000000000..ff43a321d5 --- /dev/null +++ b/content/applications/services/project/tasks/task_dependencies.rst @@ -0,0 +1,40 @@ +================= +Task dependencies +================= + +Odoo Project allows you to break down projects into tasks and establish relationships between those +tasks to determine the order in which they are executed. Task dependencies ensure that certain tasks +begin only after the preceding tasks are completed. + +To enable task dependencies in Projects, go to :menuselection:`Project --> Configuration --> +Settings`, enable :guilabel:`Task Dependencies`, and click the :icon:`fa-cloud-upload` +(:guilabel:`save`) icon. + +Set task dependencies +===================== + +Task dependencies can be created from the task form or the project's Gantt view by linking the +successor task (i.e., the task blocked by other tasks) to its predecessor task(s) (i.e., the tasks +blocking the successor task). + +To create task dependencies from the task form, access the desired task and, in the +:guilabel:`:guilabel:`Blocked by` tab, click :guilabel:`Add a line`. To access successor tasks from +the predecessor task, click the :guilabel:`Blocking Tasks` smart button. + +To create a task dependency from the Gantt view, hover your mouse over the predecessor task, then +click one of the dots that appear around it. Drag and drop the dot onto the successor task. An arrow +will appear, indicating the dependency from the predecessor task to the successor. + +.. image:: task_dependencies/task-dependency.png + :alt: Task dependency + +Odoo automatically manages task progress based on their dependency. Successor tasks are assigned the +:guilabel:`Waiting` status and cannot be moved to :guilabel:`In Progress` until their predecessor +task(s) are marked as :guilabel:`Approved`, :guilabel:`Cancelled` or :guilabel:`Done`. + +Remove dependencies +=================== + +- From the task form: go to the **Blocked by** tab and click the :icon:`fa-times` button. +- From Gantt view: click the red :guilabel:`X` button that appears at the center of the arrow when + you hover your mouse over it. diff --git a/content/applications/services/project/tasks/task_dependencies/task-dependency.png b/content/applications/services/project/tasks/task_dependencies/task-dependency.png new file mode 100644 index 0000000000000000000000000000000000000000..ec74235008b05bc8e6189330b5ed71a26c2d5235 GIT binary patch literal 16450 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

JnmXFn=RDkqB;`qT8nk}jANs1W_WmWE-8)8` z$yCWtfMzlIFj+kXXm#mSjMtL=IepSfvhJA2#)OaZ!ZbBMu=F_&B}Q4sD?d#7kk=T#xJhw3PqnL>?BN`K{4sec6Y!C^LC|$F1>Gff* zxnK9PS@H9YA{{uJ+0WE^2a4Aa#3Hb?9cvVc;P0D$8ey5qk>YLkB3n66*ChhWq+;~3 zso^vB#rBIXx;;f`4EiS0HIv57P-fCsH%c)23v&XqjV`^r!=XVRUHm|NLfG_TaGU-iYH&|4c(XbvQHwX=m$B}~C$lHP`PHoKVdjni&3 z%&x~BHL%V0i<;e75fg1?q@Dl-~E$5vM?ORKO9MXyUMJmhaoF}XxcM(lnpAn-AhbUWA? ztI&fGwV|C-WRg<8K`Xzo5JAUsNV_r+5PfDw@ro-4&>P|x>%jJUYtlm7y$jAN%QmZT zikKPppZPsulz#o-8d=Fft$qgM?X`at^x((hM_XerK68tU6!NbCZ6IjKzdz9Yt(#6$ zyVH=PAhP7=2j{;{g9~KG!7^o{_c@rJy!2XD^yuQ{nL5*Y=Fy0`>z7&GcUwG9A}o(T znzm=H&x2%?;j7OlQ2yPe*$R=7MHOg=_Zug6mXSIU8Zj^70+dtDZ@XCVDEjAD)6FN{ zQtclzSeb+u>cLmZdRJTCkFM5LE+#sdwQ5n&F##9tdj?%{VagN zgWce>zHVtH0y~Gr)0r461to$v-$|EDMP@qJv_tEYT3T%XTY@Ov4-^~rS!OfR@QjJp zW60bZ&K=xVl+UiNuAZ5BpSQ8xzn)KwZfcS_JE0%B^q2APRQpP<(r6R zzk^^yf*O}$#eKR(`q}6`>YKy;CCFOs1SVVzTwT+v-YCr`kLVvp;wmJ#xCV-h$h^A* zVfx^gf||Qu+T-tHn#zi(yDTpq@FFf;tErIa3rJmfQ%SEG>}7(PonS57gZd9R)F7(A zgdmtE7MH-h-De2(3rQ;M?bug0If&1yBXA<+hU}@?^>~=d+pH`{+xyeDhE5c{f^?#3 zSlnm5a)o~S;#mN+3(IL*5PpCErLxJ4wt^a4oe;fDz zR^_`umPCf=91aV$Ut%IZqBHSXFu{&c*}x-){>PVO&-NiQGP#zM$ny}YHoEhq&mbj1 z5x=NQh6=u*q4V=7AyTN!#<>&)(v9_!TZ!k#?p`h~E}OS65j4_PK-Zpcjk*A+n{Z9D zvu68IUwqqVn-6HNMdsUm-x2Ppk%7ff%b@T%MNsWR&PX4;lR0T=ZeTjy{MBJVG> zfHn(9pEvCqaozhC*>EctfE#I$0ZocU?Zn*CM>U<2THuEl7Z=|U&gnG*G7kr_vzn-Y z)y`z*Y(VTCD-wPD?zf-Kn{SXwW=>=)mwIhJR~OxIlx=D#@;ooK)J2C2L`T_rpO{$- zb9l|~ijHY3VP_iN=iw)cKM|9u7`yXza%{fXiv7nBs<4nPx|^<>XY)sD*{SHZmn(nX z?*nz*ATk?Sz3$3|Ts^`Q1x$C(70Kyrn>ik1F4ck`6_6&{G-+7A)@UE-IKH*8xw#3( zZNWAV#2bD@ZTxxI?CxMk^(V8Rd~bw)(0wo~^z<|!#V#v=`y5Oa-bHu%a-aOt7fzo+ zs%OMZ>F&BZj_)4Op^O+26a^D%Gqn`w{@Y?Oipj7utI8H%{4Vs!T?#3^KU~<|9T$Q_ z+q7WqQHR6cnFJxuSfSN3e;5$RnbA@5bKv%gRchDX6&W;2GC5B;=n-?>;d&}-gJdNm zW1aB(eHC+x6nP5z-#V+j)sYWwKYLmq#(Z^`q(tw*(2bKg6VkBhc{^9R_S)JXYp(Ni zq`n6G%r2DzwpIsaQw|4CZn&8~INWAZLlW-Li#y(1mfY^g9WVP!9xa|inPhr)rNyg*1@IlWX#|L+$=O z%~q~S05{6j>n{HtfSTpxB>nB*EpS;_&E`8A9yH%p>93-Nby*Q16@ecn9kBC_?9ylv zTs)o=R&xiE7P|;6afQ4G=r2BqktyP9Bf`nGSzs!C+k6Sk9Spj2H%IWIk7T;Kf^0Sf{JZY@pM zs7B%cvXH?1g)+4L=&g=d=bpv3@2&Z1!U`ipN=gBNE*z17YT2JsZUEUb-fzT&X|t^q zj-_A)jl~wYGfdoC(|Jf_8ntnydN(yB-{Xcp?D!xJej`H?Ipr4Wb2yFx=%nn5krRAD zCNHe7zF%69K#i4OU3+_boP3u0gQMv5N#RL87c#nvP9^Yr(SfuE5t4vh9-pG0zf^HC zSRh(0W93;bY9rRZVUW~q+y74v;fXgH&sG42EoU8cp$SfpPpdG-TM%+0Bn@SM$Ba-L zxO$U|{<&tlz3Az_{9KXmq++2|fKUG0$=X6SQ+Eig1z5}A@IBwc z&bJvDVFc6GFWIu1>W^23CaBO!cECeJjRIS3jJ#O)(Qn5xaj}2*-Fx*4!WT~A1Mk-> zk6VQKHv?HsB1k~Q=asU?dv1rR?EDO)fCL|}O2&XNB4S9)eOR=$^X&j5lFRFT)<+<& z6H}@yWB?UXq_0pLWMAlTN+J$lPV}S2{SCkLY(yOIQ0EmS0hxgTkf2@fV;e|xm*A>F z=n1PyN`lA)oOiJ914!>LI>?QyFqU+*t!7>j=$^SmJhapewR;05_W^wq=o=8*3%=0M z4H!!%$eyze`|BT6R=}XB5Ws}+_!dF@p;mXwwntVUE(XR>!6-}t>p}mz?oLtH`u8B= zOdrwqf2Q*Qj0&2emqfa3e4A3BqWpKR0aVzK9y#Ed7U7%x4B3EnH6>i*B}?*9kqG}O z;!8%8KoxRSL5PnT#t$zDB;*(Luf@Lf!=5$k3YJ@afDkz><3`dP7Rn(&ECt zZI9&CiZ0B*PtHp)O`HE?`IFmf=pA5sVk&%iDy~EaIXrxA@Ftif<9E&kCPtxhm0`Xs zB~dW{m7Cz6)_#WJ4~_te0hf69x)*Sz0xOSn2!PGcTHo^fdR`5SQNeXq4vlv~gIlbD zH0>m|+nE$YmiA1bvzG&ig)eXY-?HH1(sueJ8{^bsW#DmPYfv4sd7_uMWtEM%sS=!2 z-zJYPZjKp8o87B^@D%w+Xoj^R<;3~{69fTPRwR6--p$lqCwf3tbQicdgE6{oMeem2 zpL-Xy_yoNCM&9pAVW^6Po-x%_fcGt11e%a*dfC~p2NT;Bs zDdWJJ%Aw^0{ap%UUe7ETQ|>iLmR7KXvo?(N zsCTUnunqk@ZC@b>z)VL;x%(H~Uztm6VK}vS;^~j=mq@UJ*dAHX3h~r2Oi19~@RRQH zJQXuiz4Q66x)gAIh3(W-I|} zn3PdB=!_8I8~(i3Hmviq^6tHQQ zXx`yo(T}T?(kW>IcTNo`&GFnVl`jZ2<{(h5%Xr3^PlOl~z1x;VS4-g;ObBs`% z2vfGBVeW%;ZUzykDso@I70|K=o>s0R3En2^`K zJm$_8s%nWcN?2V&;#Xo$>(AW4nY4mhj_tA04Nh2_2gV@U*f{F8j*KYF-9pLy*Pru9 zm~6=^sz$3attRt??mXC+W@M_#>Htt@RL72+=Ln4QCZ~XS{I9QjmL!`NX(0+w9@m7T zZQka8s~53-CuR)QcHl3+6XtyHcvq_0VqO1MQUXXtk{VrVhZhqE?-WKmmV*S42O?yW z*mv-8krBaKVb-P5Ke^PLWs}?r3Ou=LrvfFnWS%5BIA_i~mYtSZ+HLXlo9PYO_zo&A z=7gV2U)z3$m>X$Z``?djGc_H^2Wv>UYw?U96rHql`JKw)o`efG>U9+ z{^nWAF`dJpCk}Dqht|K*t;$0UsME9y-^ki3HvWd+yNzlYMyZIy>OTG+7>Le+vv*MJEX%&145_qd;u9-X`pPcX9b>oMUZj{Go0R*!u&n`7_gl9nl+X9TiNXUB6X@JcR_wj zAt-<nwvC;cPUJJsTRKB)!v(j ziGLFqcG{m-*mCY={4oy63P6sFI)TRy1`GUSk5%HuVGN$Sl0AZVm$!$`ba-UivSN5zNK*VLuW6PG?kadZr62e?T;rzj~1RoY!I0CIB+H~ zbl5Hk4d8J+I%7kIX{?A2N-@aF5Kd3;vYyu%^K)m|ad^8K%h_MJ#UpY%bzbvwK< zV=`z>qHVZL)LB|-JUjJ{5bPY0rMmnX2sp=O@GT1T@(DZY*vOXI)*&rP|c ze_+hppcSG#1$XGs=pPPvNPe*NNMlWKSsQ@v0WzBD$6*u>c_X0BidM4U9Cl|KE*A#+ z81p-c8`vqFQQTAY2~=Bq_)u5lX?I*JkLF6x^@Jxeg|$Jc)l)=QkH6p|7WaKS>qE)C z5h(v@Y@ctUO-6S0Fd?1%*qv^#0rUw=cEVz{Cyfpzrs3hKB97J!yY86|sk6C7V>@?C z3`F3L)5a(}{t)$)(97bA%y$F)G9Q+qNZ4`+*;Ukfpg`Hf;Bi!cV61r%KmQ4Sk{=$^ z$Qr0xBPG}AclE%8zn!xEfk%yhEQ&FJ&mJyqUceyAVj@#%y4f-yK`Bkwbn2#&k|ttO zP2Y^sw8S?S<87y6GaOH@I^oC5i~<4&u|;^1gK_es(Dt9I5oyZK1|CI?8ho22>K4fS ze~R1nxipi)jm4fvxMhxT&ZhlbwN}*-c$b1)32)ZBl9UwdvCfr2#$~jG9lJnEr5RQ) zNfRrzu3Ei3#{L&#KRE8!7b36I^lBfVF6vFRVS+AQA8$BJBRr`&X*8f7HeOUxEaTk6 zvyrd7Wu$AA75oP;{AU@9EL-Wo{0 zhzs=B5MRk0$8In@7l2l2{wkI<(xZRCqF~ZgDm@O(_?+A9qsGfPW(8}^_HAf(VbLvgW_?wM_1DiqzyR2HB==54P(_c0c9^hDI8OFgYW zh$ziYgRu$7OE3Kcq$1OhUFW{)pXU6LdG>e5Sh;Y(zPeF%OhCQXjDlNjRFf$1)x5E6 z{o+Ig`b(7fukFukd*NfgKCf&IN?p00nrUu6?QoTCNRFxZ%ULlHO%P|)91s}KEIWdb z_4d^*+xWfK7TGZ`OPDA`ACw>Cw(rL7*Wj4Gs29z|Y*oC`xyLFg+E``0FVr3Fe7Xw# zA^1IuyazVAL@Dio+<4oYFtN8P-plgJ3Da6-?6FQcv*&Hw&qJNO)FIFfQ~Tbi&<95} zmz9+jlp!*j<@HQW?~PZxtJA6@`;2YK>L_ZytKMJ153vr$NM!N81{C$M8?NhCSn=uC zJ&Z3Z@Z1~TyB7BJXk?jEda!=45#;25EvD|kufNl{YoOm$dBs>aA5fqDJ-fhPbDS|i zLcMcVVefZ?@u{bKN?DQ}^rchvLAdq$K(cxkM~<||Z;o>b=r>-o@yzu;4aMGEHYRB( z@5_Ov0)iNo+wz`rp4Dr0kOW>%PR^~Bm0_uC(yRdNLHtH-b-sOoy3UtihfT`vu?&U< zb_&JI7y)`R8#0R5vHA*TTDWdPdd-&gqG)hWIs0kkU-ZOgV zL_g5yjgRaW`k;p|b|}Cw0x0RL77bhCSzJ_48Nw~|zDi$LNwH2|${{dZWojD#r+3sT zWD#AMp@`bH&Rgha_s!g=7d&1d^XhXm-4%$%)h9P`wIiiHe8PtnkQ}@CcwcmrnO($# z#v9qSwY+t2HD4XSU+UKPGf^`Rq#e)FnA|U*0ePjPYtMwQ!F0ypTmi%U(I3!>&mHaK zo&u+*2v5^LOXIy223ZrRED9Ig#AywmaYI5ukb&FC4QcLJ9x|8(Elj9Yn9fU$*N6(x zCJX?60@WnMG)PwEw_RZN3ugm|G= z{oAjRW1S#-iC6$QnSTGQxRD?fTFJ@qcKCc(whH>)lj@aSZ=ThKt$%TQ10B~VSdplOVG3G}Velgorm}VR7*g;nE<*BS@KL$gYaC*S+g|lH z!GG90g(F1+8Z7R?b`h8EO7K`ybEJCU2?|!x(T4jp88r1~cc^C2vr*qFAI3waw(lcx zZ-Sd`zAfKQfr23vM z&<2F<&lAMq&k%vxlMHxrz(Uryoxh9w$i1t_hl$#2Y~71#YG^KAE(*MTN$Xac9>YT6 z5!*kBz?u*@7anj~25luw&Rs5I`#%e|sGI6Sg#TVHgZhH<1#ur3dvNw&;>+X`fhIkB zGDP^{7a;}RL+&M&eY_lU24i6+zRWOt6IukHA*31`UoDxe4lf=8worc7nSnO{1K~5` z3sV2vCkQD2LqT6JPJevwGvF2$d6W2>)wYtzf%4L&9h8>{$cHJ>Jr^i^bV&qRa$PSV zE<5-M?Gi|Jz9EXD6mH{#_)$>5U7XD31%v-l&Yj0i_0n#&ihTes&>a$^23o1b9v13d zmjj1WN5E+#gNfH|v~MR3C(qxp<9}fMHj)~^IZDED{h_h$4^%CMzRykS;J@PRPm=55 zdE(vM&0V(>P%W|BY0x%dBtWPi&fkCe`QP6D-{xKfnd-rdgL|{foKL|#8x$bc*FS7iSD!08Ebr2BV$vS z`?`9~ZZ(ia$g6e7RU++eU?SlMYEv5O>^=?Yl14PK%1i;=?z!mw5GiDdC~9mfQvjJl zUhqYQ1m+3ZGExO5gzyR@@D`cqu{5W3$H8Q@_r|H~{xRbH(Yr}-3fPytqY8Y`f@Z>K zZ zu|HFr&lz;X~Hbm22ZC~gVh?kP4iq2C4 z^Drz_jkxnc&}z%(5SSO5G|iPiQ&dM1xTgxCcDuU86ENae>)U31qW=7e2^f} xWr#Dxgk326@PD@Ke>3#|k5z1-(=n6jkBpLi*_ckkp8{NYrKF))DsLYA{{fgMyL$it literal 0 HcmV?d00001