MAJ V4.5.0

This commit is contained in:
pablo rodriguez 2024-05-19 21:19:21 +02:00
parent 599b4f46be
commit 3ce32c337c
28 changed files with 1673 additions and 499 deletions

Binary file not shown.

5
bin/.gitignore vendored
View File

@ -18,3 +18,8 @@
/enregistrer_modifications.png
/enregistrer_modifications.svg
/enregistrer_modifications.svg.2024_05_18_15_52_08.0.svg
/afficheprogression.png
/afficheprogression.svg
/afficheprogressionmini.png
/noafficheprogression.png
/noafficheprogressionmini.png

472
icons/addNewStudent.svg Normal file
View File

@ -0,0 +1,472 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="listestudent.png"
sodipodi:docname="addNewStudent.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
id="svg8"
version="1.1"
viewBox="0 0 12.7 12.7"
height="48"
width="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs2">
<linearGradient
id="k"
gradientTransform="matrix(7.3290847,0,0,7.3272888,-782.49722,-7149.5485)"
gradientUnits="userSpaceOnUse"
x1="122.75008"
x2="111.74973"
xlink:href="#b"
y1="991.62115"
y2="977.11713" />
<linearGradient
id="b">
<stop
offset="0"
stop-color="#0369a3"
id="stop7" />
<stop
offset="1"
stop-color="#1c99e0"
id="stop9" />
</linearGradient>
<linearGradient
id="j"
gradientUnits="userSpaceOnUse"
x1="108.00134"
x2="20.001341"
y1="122"
y2="6"
gradientTransform="translate(12)">
<stop
offset="0"
stop-color="#e6e6e6"
id="stop35" />
<stop
offset="1"
stop-color="#fff"
id="stop37" />
</linearGradient>
<linearGradient
id="i"
gradientUnits="userSpaceOnUse"
x1="108.00134"
x2="20.001341"
xlink:href="#b"
y1="130"
y2="14"
gradientTransform="translate(12)" />
<linearGradient
id="h"
gradientTransform="matrix(4.4999,0,0,3.66665,-930.97741,2199.6564)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="-581.63782"
y2="-578.63782">
<stop
offset="0"
stop-color="#63bbee"
id="stop29" />
<stop
offset="1"
stop-color="#aadcf7"
id="stop31" />
</linearGradient>
<linearGradient
id="g"
gradientTransform="matrix(-4.19983,0,0,3.9111,1552.9405,-4523.1636)"
gradientUnits="userSpaceOnUse"
x2="0"
xlink:href="#a"
y1="1173"
y2="1178" />
<linearGradient
id="a">
<stop
offset="0"
stop-color="#666"
id="stop2" />
<stop
offset="1"
stop-color="#333"
id="stop4" />
</linearGradient>
<linearGradient
id="f"
gradientTransform="matrix(4.19983,0,0,3.9111,-1380.9394,-4521.9436)"
gradientUnits="userSpaceOnUse"
x2="0"
xlink:href="#a"
y1="1173"
y2="1178" />
<linearGradient
id="e"
gradientTransform="matrix(1.19997,0,0,1.22222,-269.19161,858.5534)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="-629.66907"
y2="-635.54944">
<stop
offset="0"
stop-color="#18a303"
id="stop22" />
<stop
offset="1"
stop-color="#106802"
id="stop24" />
</linearGradient>
<linearGradient
id="d"
gradientTransform="matrix(4.19983,0,0,3.9111,-1380.9394,-4517.0536)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="1173"
y2="1178">
<stop
offset="0"
stop-color="#0369a3"
id="stop17" />
<stop
offset="1"
stop-color="#023f62"
id="stop19" />
</linearGradient>
<linearGradient
id="c"
gradientTransform="matrix(0,0.791084,-1.28,0,1511.6005,-282.0136)"
gradientUnits="userSpaceOnUse"
x1="445.69522"
x2="441.38797"
y1="1103.5776"
y2="1099.8198">
<stop
offset="0"
stop-color="#e9b913"
id="stop12" />
<stop
offset="1"
stop-color="#ff0"
id="stop14" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#b"
id="linearGradient4157"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.9997394,0,0,7.9977793,-859.65065,-7810.3938)"
x1="122.75008"
y1="991.62115"
x2="111.74973"
y2="977.11713" />
</defs>
<sodipodi:namedview
inkscape:window-maximized="1"
inkscape:window-y="-8"
inkscape:window-x="-8"
inkscape:window-height="1009"
inkscape:window-width="1920"
inkscape:guide-bbox="true"
showguides="true"
units="px"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="28.145333"
inkscape:cx="20.992889"
inkscape:zoom="10.76555"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:pagecheckerboard="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-global="false"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<sodipodi:guide
id="guide14"
orientation="1,0"
position="-2.471617e-08,4.4381936"
inkscape:locked="false" />
<sodipodi:guide
position="-0.24253472,-0.26458333"
orientation="-0.71816555,0.69587229"
id="guide5772"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Calque 1"
transform="translate(-0.92013353,-0.34176359)">
<g
id="g6608"
transform="matrix(0.76215268,0,0,0.75860347,20.419626,10.683336)"
style="stroke-width:1.21708">
<g
id="g2"
transform="matrix(1.1126819,0,0,1.0689509,-1.0567243,-0.60391678)">
<path
id="path4945"
style="fill:#b3b3b3;stroke:#000000;stroke-width:0.200713;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 6.448524,4.1578515 A 2.5406649,2.4821629 0 0 0 3.9075938,6.6403872 2.5406649,2.4821629 0 0 0 6.448524,9.1224062 2.5406649,2.4821629 0 0 0 8.0241383,8.5870385 L 8.590512,9.1559961 8.958965,8.730699 8.4272144,8.1968815 A 2.5406649,2.4821629 0 0 0 8.9889372,6.6403872 2.5406649,2.4821629 0 0 0 6.448524,4.1578515 Z m 0,0.5539713 A 1.9739749,1.9285217 0 0 1 8.4220468,6.6403872 1.9739749,1.9285217 0 0 1 6.448524,8.5684348 1.9739749,1.9285217 0 0 1 4.4744842,6.6403872 1.9739749,1.9285217 0 0 1 6.448524,4.7118228 Z" />
<path
style="fill:#ff0000;stroke:none;stroke-width:0.322019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 9.2441621,8.53155 2.9328089,2.944082 c 0.0419,0.512292 -0.280235,0.819082 -0.875635,0.903687 L 8.3690939,9.4346523 C 8.6546945,9.0611151 8.873339,8.7906209 9.2441621,8.53155 Z"
id="path5444"
sodipodi:nodetypes="ccccc" />
</g>
</g>
<g
id="g1"
transform="matrix(0.08485361,0,0,0.08631596,18.493169,0.67154427)">
<g
id="g4179"
transform="matrix(1.091506,0,0,1.091506,-5.550275,-6.6190888)"
style="stroke-width:0.916165">
<path
style="fill:url(#k);stroke-width:0.916165"
d="m 33.356573,1.223906 c -0.25037,0 -0.50072,0.011156 -0.75,0.035156 -3.66708,0.6998 -4.56576,2.2662469 -4.5,5.9980469 V 123.22586 c 4e-4,4.1875 1.81149,5.99765 6,5.99805 h 91.998057 c 4.1885,-4e-4 5.99764,-1.81055 5.99804,-5.99805 V 51.4075 c 0.048,-2.1119 -0.78004,-4.230247 -2.25,-5.748047 L 87.692523,3.5090622 c -1.51819,-1.4691999 -3.63759,-2.2988999 -5.75,-2.25 h -47.83595 c -0.24919,-0.024 -0.49962,-0.035156 -0.75,-0.035156 z"
id="path41" />
<path
d="M 34.104633,7.2239059 V 123.22391 H 126.10465 V 51.223906 L 82.104653,7.2239059 Z"
fill="url(#j)"
id="path43"
style="fill:#000080;stroke-width:0.916165" />
</g>
<path
style="fill:url(#linearGradient4157);stroke-width:1"
d="m 131.22533,55.778801 c 0.38078,0 0.7607,-0.03052 1.13694,-0.08855 4.82817,-1.546485 6.45292,-8.894004 2.73075,-12.350381 L 91.397403,-0.58243478 C 87.360856,-4.4299678 79.32347,-1.1377203 79.110793,4.4505138 V 48.372824 c 4.36e-4,3.833024 3.469037,7.316888 7.281987,7.317433 h 43.69209 c 0.37643,0.05804 0.75972,0.08855 1.14046,0.08855 z"
id="path4056" />
<text
xml:space="preserve"
style="font-size:53.1628px;line-height:1.25;font-family:'C.A. Gatintas';-inkscape-font-specification:'C.A. Gatintas';text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:3.0916"
x="88.898773"
y="96.537178"
id="text3199"
transform="scale(0.90538451,1.1045031)"><tspan
sodipodi:role="line"
id="tspan3197"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:arial;-inkscape-font-specification:arial;fill:#ffffff;stroke-width:3.0916"
x="88.898773"
y="96.537178">CSV</tspan></text>
</g>
<g
id="g6"
transform="translate(9.3985307,7.983748)">
<rect
style="fill:#00ff00;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel"
id="rect4"
width="5.1373262"
height="4.7845492"
x="8.1961746"
y="5.7877703"
ry="0.9260416" />
<g
id="g23"
transform="matrix(0.04473207,0,0,0.04550297,1.4115291,3.3967797)">
<path
style="fill:#ffe6d5;stroke:none;stroke-width:2.92119;stroke-linecap:round;stroke-linejoin:bevel"
d="m 205.01263,120.83445 -10.39372,-6.8969 -5.19686,-10.98395 -3.89764,-1.53264 -1.29921,-8.429546 2.59842,-3.831611 1.55906,-1.532645 v -8.174104 l 21.30712,3.065289 19.74807,-4.087051 0.51968,8.684984 2.85827,3.831611 1.03937,5.875137 -2.07874,5.875136 -3.11811,1.53264 -3.89765,9.45131 -7.53544,5.87514 -4.15749,2.29896 z"
id="path16" />
<g
id="g22"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#0066ff;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g21"
style="fill:#0066ff;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path17"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 6340.2,3243 -1099.3,-275.3 -1344,149.1 -1344,149.1 v -569.7 -569.7 l -103.2,-99.4 C 2260.4,1839.7 2170.6,1596.9 2157.2,1218.4 2140,816.9 2229.9,493.8 2411.5,293.1 2484,212.7 2642.7,121 2711.5,121 c 17.2,0 32.5,-15.3 32.5,-32.5 0,-63.1 191.2,-510.5 298.2,-697.8 369,-651.9 892.8,-1091.7 1491.2,-1248.4 290.6,-76.5 642.4,-76.5 933,0 728.4,191.2 1345.9,803 1693.9,1676.7 51.7,133.7 95.7,256.1 95.7,273.3 0,15.3 15.3,28.7 34.4,28.7 66.9,0 225.6,91.8 298.3,172.1 181.6,200.7 271.5,523.8 256.2,925.3 -15.3,380.5 -110.9,629 -307.8,808.7 l -80.3,70.7 -9.6,709.3 -9.6,709.3 z M 3222,2375 c 229.4,-65 602.2,-135.7 908.1,-174 137.7,-15.3 435.9,-24.8 869.9,-24.8 694,0 869.9,13.4 1328.7,97.5 216,38.2 575.5,130 686.4,172.1 34.4,13.4 36.3,3.8 22.9,-273.4 l -13.4,-286.8 49.7,-59.3 c 32.5,-40.1 76.5,-65 130,-74.6 70.7,-15.3 86,-26.8 133.8,-114.7 149.1,-277.2 135.8,-812.5 -22.9,-1036.2 -40.1,-57.4 -45.9,-57.4 -154.9,-45.9 -107.1,9.6 -114.7,7.6 -170.2,-45.9 -30.6,-32.5 -65,-95.6 -78.4,-141.5 -239,-948.3 -887.1,-1692 -1604,-1844.9 -166.3,-34.4 -443.6,-34.4 -613.7,1.9 -671,141.5 -1267.5,774.3 -1540.9,1634.6 -38.2,120.4 -78.4,244.7 -89.9,275.3 -36.3,99.4 -187.4,156.8 -281,107.1 -51.6,-28.7 -124.3,66.9 -175.9,235.2 -63.1,196.9 -61.2,560.2 1.9,739.9 61.2,174 99.4,221.8 191.2,237.1 51.6,7.6 89.9,30.6 124.3,70.7 l 49.7,59.3 -11.5,288.7 c -13.4,277.2 -13.4,286.8 22.9,273.4 19.3,-7.7 126.3,-40.2 237.2,-70.8 z"
id="path18"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path19"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path20"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path21"
style="fill:#dd55ff;stroke-width:33.6545" />
</g>
</g>
</g>
</g>
<g
id="g379"
transform="matrix(0.01113254,0,0,0.01113254,-13.457508,12.852851)"
style="fill:#000000;stroke-width:23.7666">
<g
transform="matrix(0.08797553,0,0,-0.08797553,110.05744,434.06317)"
id="g377"
style="fill:#000000;stroke-width:27.0149">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path367"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 6340.2,3243 -1099.3,-275.3 -1344,149.1 -1344,149.1 v -569.7 -569.7 l -103.2,-99.4 C 2260.4,1839.7 2170.6,1596.9 2157.2,1218.4 2140,816.9 2229.9,493.8 2411.5,293.1 2484,212.7 2642.7,121 2711.5,121 c 17.2,0 32.5,-15.3 32.5,-32.5 0,-63.1 191.2,-510.5 298.2,-697.8 369,-651.9 892.8,-1091.7 1491.2,-1248.4 290.6,-76.5 642.4,-76.5 933,0 728.4,191.2 1345.9,803 1693.9,1676.7 51.7,133.7 95.7,256.1 95.7,273.3 0,15.3 15.3,28.7 34.4,28.7 66.9,0 225.6,91.8 298.3,172.1 181.6,200.7 271.5,523.8 256.2,925.3 -15.3,380.5 -110.9,629 -307.8,808.7 l -80.3,70.7 -9.6,709.3 -9.6,709.3 z M 3222,2375 c 229.4,-65 602.2,-135.7 908.1,-174 137.7,-15.3 435.9,-24.8 869.9,-24.8 694,0 869.9,13.4 1328.7,97.5 216,38.2 575.5,130 686.4,172.1 34.4,13.4 36.3,3.8 22.9,-273.4 l -13.4,-286.8 49.7,-59.3 c 32.5,-40.1 76.5,-65 130,-74.6 70.7,-15.3 86,-26.8 133.8,-114.7 149.1,-277.2 135.8,-812.5 -22.9,-1036.2 -40.1,-57.4 -45.9,-57.4 -154.9,-45.9 -107.1,9.6 -114.7,7.6 -170.2,-45.9 -30.6,-32.5 -65,-95.6 -78.4,-141.5 -239,-948.3 -887.1,-1692 -1604,-1844.9 -166.3,-34.4 -443.6,-34.4 -613.7,1.9 -671,141.5 -1267.5,774.3 -1540.9,1634.6 -38.2,120.4 -78.4,244.7 -89.9,275.3 -36.3,99.4 -187.4,156.8 -281,107.1 -51.6,-28.7 -124.3,66.9 -175.9,235.2 -63.1,196.9 -61.2,560.2 1.9,739.9 61.2,174 99.4,221.8 191.2,237.1 51.6,7.6 89.9,30.6 124.3,70.7 l 49.7,59.3 -11.5,288.7 c -13.4,277.2 -13.4,286.8 22.9,273.4 19.3,-7.7 126.3,-40.2 237.2,-70.8 z"
id="path369"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path371"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path373"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path375"
style="fill:#000000;stroke-width:27.0149" />
</g>
</g>
<g
id="g5"
transform="matrix(0.08485361,0,0,0.08631596,16.262976,-6.3747231)">
<rect
style="fill:#00ff00;stroke-width:11.6848;stroke-linecap:round;stroke-linejoin:bevel"
id="rect3"
width="60.5434"
height="55.430641"
x="89.144531"
y="-5.2591376"
ry="10.72851" />
<g
id="g3"
transform="matrix(0.32167629,0,0,0.32167629,93.380516,1.8281726)"
style="stroke-width:27.2434">
<path
style="fill:#ffffff;stroke:#ff0000;stroke-width:27.2434;stroke-linecap:round;stroke-linejoin:bevel"
d="M 14.028074,-2.2879778 147.84718,130.5412"
id="path1" />
<path
style="fill:#ffffff;stroke:#ff0000;stroke-width:27.2434;stroke-linecap:round;stroke-linejoin:bevel"
d="M 147.84718,-2.2879778 14.028074,130.5412"
id="path2" />
</g>
</g>
<g
id="g9"
transform="matrix(0.10400523,0,0,0.10579764,-12.771526,-5.2392046)">
<path
id="path8"
style="fill:#ffe6d5;stroke:#000000;stroke-width:2.38328;stroke-linecap:round;stroke-linejoin:bevel"
d="m 231.67865,74.184632 -10.16583,2.491075 -10.18571,2.505728 -12.45141,-1.35788 -12.4514,-1.35788 v 5.192181 5.187296 l -0.95895,0.903625 c -1.75387,1.70685 -2.58376,3.918367 -2.70791,7.365766 -0.15936,3.656884 0.67261,6.602587 2.35514,8.430577 0.67171,0.73229 2.145,1.56791 2.78243,1.56791 0.15936,0 0.29812,0.13641 0.29812,0.29307 0,0.57472 1.77121,4.65363 2.76256,6.35957 3.4188,5.93754 8.2736,9.9389 13.81779,11.36613 2.69241,0.69677 5.95301,0.69677 8.64543,0 6.74864,-1.74146 12.46673,-7.31111 15.69095,-15.26882 0.47901,-1.21774 0.88939,-2.33441 0.88939,-2.49107 0,-0.13935 0.14103,-0.25888 0.31799,-0.25888 0.61983,0 2.089,-0.83653 2.76257,-1.56791 1.68252,-1.82799 2.51676,-4.773693 2.375,-8.430577 -0.14175,-3.465615 -1.02771,-5.729048 -2.85199,-7.365766 l -0.7453,-0.639864 -0.0894,-6.46214 z" />
<g
id="g570"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#000000;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g568"
style="fill:#000000;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path558"
style="fill:#800080;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path562"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path564"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path566"
style="fill:#800080;stroke-width:33.6545" />
</g>
</g>
</g>
<g
id="g26"
transform="matrix(0.10400523,0,0,0.10579764,-13.400521,-3.0189787)">
<path
id="path12"
style="fill:#ffe6d5;stroke:#000000;stroke-width:2.38328;stroke-linecap:round;stroke-linejoin:bevel"
d="m 231.67865,74.184632 -10.16583,2.491075 -10.18571,2.505728 -12.45141,-1.35788 -12.4514,-1.35788 v 5.192181 5.187296 l -0.95895,0.903625 c -1.75387,1.70685 -2.58376,3.918367 -2.70791,7.365766 -0.15936,3.656884 0.67261,6.602587 2.35514,8.430577 0.67171,0.73229 2.145,1.56791 2.78243,1.56791 0.15936,0 0.29812,0.13641 0.29812,0.29307 0,0.57472 1.77121,4.65363 2.76256,6.35957 3.4188,5.93754 8.2736,9.9389 13.81779,11.36613 2.69241,0.69677 5.95301,0.69677 8.64543,0 6.74864,-1.74146 12.46673,-7.31111 15.69095,-15.26882 0.47901,-1.21774 0.88939,-2.33441 0.88939,-2.49107 0,-0.13935 0.14103,-0.25888 0.31799,-0.25888 0.61983,0 2.089,-0.83653 2.76257,-1.56791 1.68252,-1.82799 2.51676,-4.773693 2.375,-8.430577 -0.14175,-3.465615 -1.02771,-5.729048 -2.85199,-7.365766 l -0.7453,-0.639864 -0.0894,-6.46214 z" />
<g
id="g25"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#000000;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g24"
style="fill:#000000;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path13"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path14"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path15"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path22"
style="fill:#1a1a1a;stroke-width:33.6545" />
</g>
</g>
</g>
<text
xml:space="preserve"
style="font-size:14.1715px;line-height:1.15;font-family:handwriting-draft_free-version;-inkscape-font-specification:handwriting-draft_free-version;stroke:#f9f9f9;stroke-width:0.266381"
x="0.11816031"
y="8.8655224"
id="text1"
transform="scale(0.94706971,1.0558885)"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Pacifico;-inkscape-font-specification:Pacifico;fill:#ff0000;stroke:#f9f9f9;stroke-width:0.266381"
x="0.11816031"
y="8.8655224">+</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

BIN
icons/addnewstudent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
icons/addnewstudentmini.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1016 B

472
icons/listeStudent.svg Normal file
View File

@ -0,0 +1,472 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="listestudent.png"
sodipodi:docname="listeStudent.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
id="svg8"
version="1.1"
viewBox="0 0 12.7 12.7"
height="48"
width="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs2">
<linearGradient
id="k"
gradientTransform="matrix(7.3290847,0,0,7.3272888,-782.49722,-7149.5485)"
gradientUnits="userSpaceOnUse"
x1="122.75008"
x2="111.74973"
xlink:href="#b"
y1="991.62115"
y2="977.11713" />
<linearGradient
id="b">
<stop
offset="0"
stop-color="#0369a3"
id="stop7" />
<stop
offset="1"
stop-color="#1c99e0"
id="stop9" />
</linearGradient>
<linearGradient
id="j"
gradientUnits="userSpaceOnUse"
x1="108.00134"
x2="20.001341"
y1="122"
y2="6"
gradientTransform="translate(12)">
<stop
offset="0"
stop-color="#e6e6e6"
id="stop35" />
<stop
offset="1"
stop-color="#fff"
id="stop37" />
</linearGradient>
<linearGradient
id="i"
gradientUnits="userSpaceOnUse"
x1="108.00134"
x2="20.001341"
xlink:href="#b"
y1="130"
y2="14"
gradientTransform="translate(12)" />
<linearGradient
id="h"
gradientTransform="matrix(4.4999,0,0,3.66665,-930.97741,2199.6564)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="-581.63782"
y2="-578.63782">
<stop
offset="0"
stop-color="#63bbee"
id="stop29" />
<stop
offset="1"
stop-color="#aadcf7"
id="stop31" />
</linearGradient>
<linearGradient
id="g"
gradientTransform="matrix(-4.19983,0,0,3.9111,1552.9405,-4523.1636)"
gradientUnits="userSpaceOnUse"
x2="0"
xlink:href="#a"
y1="1173"
y2="1178" />
<linearGradient
id="a">
<stop
offset="0"
stop-color="#666"
id="stop2" />
<stop
offset="1"
stop-color="#333"
id="stop4" />
</linearGradient>
<linearGradient
id="f"
gradientTransform="matrix(4.19983,0,0,3.9111,-1380.9394,-4521.9436)"
gradientUnits="userSpaceOnUse"
x2="0"
xlink:href="#a"
y1="1173"
y2="1178" />
<linearGradient
id="e"
gradientTransform="matrix(1.19997,0,0,1.22222,-269.19161,858.5534)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="-629.66907"
y2="-635.54944">
<stop
offset="0"
stop-color="#18a303"
id="stop22" />
<stop
offset="1"
stop-color="#106802"
id="stop24" />
</linearGradient>
<linearGradient
id="d"
gradientTransform="matrix(4.19983,0,0,3.9111,-1380.9394,-4517.0536)"
gradientUnits="userSpaceOnUse"
x2="0"
y1="1173"
y2="1178">
<stop
offset="0"
stop-color="#0369a3"
id="stop17" />
<stop
offset="1"
stop-color="#023f62"
id="stop19" />
</linearGradient>
<linearGradient
id="c"
gradientTransform="matrix(0,0.791084,-1.28,0,1511.6005,-282.0136)"
gradientUnits="userSpaceOnUse"
x1="445.69522"
x2="441.38797"
y1="1103.5776"
y2="1099.8198">
<stop
offset="0"
stop-color="#e9b913"
id="stop12" />
<stop
offset="1"
stop-color="#ff0"
id="stop14" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#b"
id="linearGradient4157"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.9997394,0,0,7.9977793,-859.65065,-7810.3938)"
x1="122.75008"
y1="991.62115"
x2="111.74973"
y2="977.11713" />
</defs>
<sodipodi:namedview
inkscape:window-maximized="1"
inkscape:window-y="-8"
inkscape:window-x="-8"
inkscape:window-height="1009"
inkscape:window-width="1920"
inkscape:guide-bbox="true"
showguides="true"
units="px"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="31.39617"
inkscape:cx="32.841182"
inkscape:zoom="7.6123936"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:pagecheckerboard="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-global="false"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<sodipodi:guide
id="guide14"
orientation="1,0"
position="-2.471617e-08,4.4381936"
inkscape:locked="false" />
<sodipodi:guide
position="-0.24253472,-0.26458333"
orientation="-0.71816555,0.69587229"
id="guide5772"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Calque 1"
transform="translate(-0.92013353,-0.34176359)">
<g
id="g6608"
transform="matrix(0.76215268,0,0,0.75860347,20.419626,10.683336)"
style="stroke-width:1.21708">
<g
id="g2"
transform="matrix(1.1126819,0,0,1.0689509,-1.0567243,-0.60391678)">
<path
id="path4945"
style="fill:#b3b3b3;stroke:#000000;stroke-width:0.200713;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 6.448524,4.1578515 A 2.5406649,2.4821629 0 0 0 3.9075938,6.6403872 2.5406649,2.4821629 0 0 0 6.448524,9.1224062 2.5406649,2.4821629 0 0 0 8.0241383,8.5870385 L 8.590512,9.1559961 8.958965,8.730699 8.4272144,8.1968815 A 2.5406649,2.4821629 0 0 0 8.9889372,6.6403872 2.5406649,2.4821629 0 0 0 6.448524,4.1578515 Z m 0,0.5539713 A 1.9739749,1.9285217 0 0 1 8.4220468,6.6403872 1.9739749,1.9285217 0 0 1 6.448524,8.5684348 1.9739749,1.9285217 0 0 1 4.4744842,6.6403872 1.9739749,1.9285217 0 0 1 6.448524,4.7118228 Z" />
<path
style="fill:#ff0000;stroke:none;stroke-width:0.322019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 9.2441621,8.53155 2.9328089,2.944082 c 0.0419,0.512292 -0.280235,0.819082 -0.875635,0.903687 L 8.3690939,9.4346523 C 8.6546945,9.0611151 8.873339,8.7906209 9.2441621,8.53155 Z"
id="path5444"
sodipodi:nodetypes="ccccc" />
</g>
</g>
<g
id="g1"
transform="matrix(0.08485361,0,0,0.08631596,18.493169,0.67154427)">
<g
id="g4179"
transform="matrix(1.091506,0,0,1.091506,-5.550275,-6.6190888)"
style="stroke-width:0.916165">
<path
style="fill:url(#k);stroke-width:0.916165"
d="m 33.356573,1.223906 c -0.25037,0 -0.50072,0.011156 -0.75,0.035156 -3.66708,0.6998 -4.56576,2.2662469 -4.5,5.9980469 V 123.22586 c 4e-4,4.1875 1.81149,5.99765 6,5.99805 h 91.998057 c 4.1885,-4e-4 5.99764,-1.81055 5.99804,-5.99805 V 51.4075 c 0.048,-2.1119 -0.78004,-4.230247 -2.25,-5.748047 L 87.692523,3.5090622 c -1.51819,-1.4691999 -3.63759,-2.2988999 -5.75,-2.25 h -47.83595 c -0.24919,-0.024 -0.49962,-0.035156 -0.75,-0.035156 z"
id="path41" />
<path
d="M 34.104633,7.2239059 V 123.22391 H 126.10465 V 51.223906 L 82.104653,7.2239059 Z"
fill="url(#j)"
id="path43"
style="fill:#000080;stroke-width:0.916165" />
</g>
<path
style="fill:url(#linearGradient4157);stroke-width:1"
d="m 131.22533,55.778801 c 0.38078,0 0.7607,-0.03052 1.13694,-0.08855 4.82817,-1.546485 6.45292,-8.894004 2.73075,-12.350381 L 91.397403,-0.58243478 C 87.360856,-4.4299678 79.32347,-1.1377203 79.110793,4.4505138 V 48.372824 c 4.36e-4,3.833024 3.469037,7.316888 7.281987,7.317433 h 43.69209 c 0.37643,0.05804 0.75972,0.08855 1.14046,0.08855 z"
id="path4056" />
<text
xml:space="preserve"
style="font-size:53.1628px;line-height:1.25;font-family:'C.A. Gatintas';-inkscape-font-specification:'C.A. Gatintas';text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:3.0916"
x="88.898773"
y="96.537178"
id="text3199"
transform="scale(0.90538451,1.1045031)"><tspan
sodipodi:role="line"
id="tspan3197"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:arial;-inkscape-font-specification:arial;fill:#ffffff;stroke-width:3.0916"
x="88.898773"
y="96.537178">CSV</tspan></text>
</g>
<g
id="g6"
transform="translate(9.3985307,7.983748)">
<rect
style="fill:#00ff00;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel"
id="rect4"
width="5.1373262"
height="4.7845492"
x="8.1961746"
y="5.7877703"
ry="0.9260416" />
<g
id="g23"
transform="matrix(0.04473207,0,0,0.04550297,1.4115291,3.3967797)">
<path
style="fill:#ffe6d5;stroke:none;stroke-width:2.92119;stroke-linecap:round;stroke-linejoin:bevel"
d="m 205.01263,120.83445 -10.39372,-6.8969 -5.19686,-10.98395 -3.89764,-1.53264 -1.29921,-8.429546 2.59842,-3.831611 1.55906,-1.532645 v -8.174104 l 21.30712,3.065289 19.74807,-4.087051 0.51968,8.684984 2.85827,3.831611 1.03937,5.875137 -2.07874,5.875136 -3.11811,1.53264 -3.89765,9.45131 -7.53544,5.87514 -4.15749,2.29896 z"
id="path16" />
<g
id="g22"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#0066ff;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g21"
style="fill:#0066ff;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path17"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 6340.2,3243 -1099.3,-275.3 -1344,149.1 -1344,149.1 v -569.7 -569.7 l -103.2,-99.4 C 2260.4,1839.7 2170.6,1596.9 2157.2,1218.4 2140,816.9 2229.9,493.8 2411.5,293.1 2484,212.7 2642.7,121 2711.5,121 c 17.2,0 32.5,-15.3 32.5,-32.5 0,-63.1 191.2,-510.5 298.2,-697.8 369,-651.9 892.8,-1091.7 1491.2,-1248.4 290.6,-76.5 642.4,-76.5 933,0 728.4,191.2 1345.9,803 1693.9,1676.7 51.7,133.7 95.7,256.1 95.7,273.3 0,15.3 15.3,28.7 34.4,28.7 66.9,0 225.6,91.8 298.3,172.1 181.6,200.7 271.5,523.8 256.2,925.3 -15.3,380.5 -110.9,629 -307.8,808.7 l -80.3,70.7 -9.6,709.3 -9.6,709.3 z M 3222,2375 c 229.4,-65 602.2,-135.7 908.1,-174 137.7,-15.3 435.9,-24.8 869.9,-24.8 694,0 869.9,13.4 1328.7,97.5 216,38.2 575.5,130 686.4,172.1 34.4,13.4 36.3,3.8 22.9,-273.4 l -13.4,-286.8 49.7,-59.3 c 32.5,-40.1 76.5,-65 130,-74.6 70.7,-15.3 86,-26.8 133.8,-114.7 149.1,-277.2 135.8,-812.5 -22.9,-1036.2 -40.1,-57.4 -45.9,-57.4 -154.9,-45.9 -107.1,9.6 -114.7,7.6 -170.2,-45.9 -30.6,-32.5 -65,-95.6 -78.4,-141.5 -239,-948.3 -887.1,-1692 -1604,-1844.9 -166.3,-34.4 -443.6,-34.4 -613.7,1.9 -671,141.5 -1267.5,774.3 -1540.9,1634.6 -38.2,120.4 -78.4,244.7 -89.9,275.3 -36.3,99.4 -187.4,156.8 -281,107.1 -51.6,-28.7 -124.3,66.9 -175.9,235.2 -63.1,196.9 -61.2,560.2 1.9,739.9 61.2,174 99.4,221.8 191.2,237.1 51.6,7.6 89.9,30.6 124.3,70.7 l 49.7,59.3 -11.5,288.7 c -13.4,277.2 -13.4,286.8 22.9,273.4 19.3,-7.7 126.3,-40.2 237.2,-70.8 z"
id="path18"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path19"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path20"
style="fill:#0066ff;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path21"
style="fill:#dd55ff;stroke-width:33.6545" />
</g>
</g>
</g>
</g>
<g
id="g379"
transform="matrix(0.01113254,0,0,0.01113254,-13.457508,12.852851)"
style="fill:#000000;stroke-width:23.7666">
<g
transform="matrix(0.08797553,0,0,-0.08797553,110.05744,434.06317)"
id="g377"
style="fill:#000000;stroke-width:27.0149">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path367"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 6340.2,3243 -1099.3,-275.3 -1344,149.1 -1344,149.1 v -569.7 -569.7 l -103.2,-99.4 C 2260.4,1839.7 2170.6,1596.9 2157.2,1218.4 2140,816.9 2229.9,493.8 2411.5,293.1 2484,212.7 2642.7,121 2711.5,121 c 17.2,0 32.5,-15.3 32.5,-32.5 0,-63.1 191.2,-510.5 298.2,-697.8 369,-651.9 892.8,-1091.7 1491.2,-1248.4 290.6,-76.5 642.4,-76.5 933,0 728.4,191.2 1345.9,803 1693.9,1676.7 51.7,133.7 95.7,256.1 95.7,273.3 0,15.3 15.3,28.7 34.4,28.7 66.9,0 225.6,91.8 298.3,172.1 181.6,200.7 271.5,523.8 256.2,925.3 -15.3,380.5 -110.9,629 -307.8,808.7 l -80.3,70.7 -9.6,709.3 -9.6,709.3 z M 3222,2375 c 229.4,-65 602.2,-135.7 908.1,-174 137.7,-15.3 435.9,-24.8 869.9,-24.8 694,0 869.9,13.4 1328.7,97.5 216,38.2 575.5,130 686.4,172.1 34.4,13.4 36.3,3.8 22.9,-273.4 l -13.4,-286.8 49.7,-59.3 c 32.5,-40.1 76.5,-65 130,-74.6 70.7,-15.3 86,-26.8 133.8,-114.7 149.1,-277.2 135.8,-812.5 -22.9,-1036.2 -40.1,-57.4 -45.9,-57.4 -154.9,-45.9 -107.1,9.6 -114.7,7.6 -170.2,-45.9 -30.6,-32.5 -65,-95.6 -78.4,-141.5 -239,-948.3 -887.1,-1692 -1604,-1844.9 -166.3,-34.4 -443.6,-34.4 -613.7,1.9 -671,141.5 -1267.5,774.3 -1540.9,1634.6 -38.2,120.4 -78.4,244.7 -89.9,275.3 -36.3,99.4 -187.4,156.8 -281,107.1 -51.6,-28.7 -124.3,66.9 -175.9,235.2 -63.1,196.9 -61.2,560.2 1.9,739.9 61.2,174 99.4,221.8 191.2,237.1 51.6,7.6 89.9,30.6 124.3,70.7 l 49.7,59.3 -11.5,288.7 c -13.4,277.2 -13.4,286.8 22.9,273.4 19.3,-7.7 126.3,-40.2 237.2,-70.8 z"
id="path369"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path371"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path373"
style="fill:#000000;stroke-width:27.0149" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path375"
style="fill:#000000;stroke-width:27.0149" />
</g>
</g>
<g
id="g5"
transform="matrix(0.08485361,0,0,0.08631596,16.262976,-6.3747231)">
<rect
style="fill:#00ff00;stroke-width:11.6848;stroke-linecap:round;stroke-linejoin:bevel"
id="rect3"
width="60.5434"
height="55.430641"
x="89.144531"
y="-5.2591376"
ry="10.72851" />
<g
id="g3"
transform="matrix(0.32167629,0,0,0.32167629,93.380516,1.8281726)"
style="stroke-width:27.2434">
<path
style="fill:#ffffff;stroke:#ff0000;stroke-width:27.2434;stroke-linecap:round;stroke-linejoin:bevel"
d="M 14.028074,-2.2879778 147.84718,130.5412"
id="path1" />
<path
style="fill:#ffffff;stroke:#ff0000;stroke-width:27.2434;stroke-linecap:round;stroke-linejoin:bevel"
d="M 147.84718,-2.2879778 14.028074,130.5412"
id="path2" />
</g>
</g>
<g
id="g9"
transform="matrix(0.10400523,0,0,0.10579764,-12.771526,-5.2392046)">
<path
id="path8"
style="fill:#ffe6d5;stroke:#000000;stroke-width:2.38328;stroke-linecap:round;stroke-linejoin:bevel"
d="m 231.67865,74.184632 -10.16583,2.491075 -10.18571,2.505728 -12.45141,-1.35788 -12.4514,-1.35788 v 5.192181 5.187296 l -0.95895,0.903625 c -1.75387,1.70685 -2.58376,3.918367 -2.70791,7.365766 -0.15936,3.656884 0.67261,6.602587 2.35514,8.430577 0.67171,0.73229 2.145,1.56791 2.78243,1.56791 0.15936,0 0.29812,0.13641 0.29812,0.29307 0,0.57472 1.77121,4.65363 2.76256,6.35957 3.4188,5.93754 8.2736,9.9389 13.81779,11.36613 2.69241,0.69677 5.95301,0.69677 8.64543,0 6.74864,-1.74146 12.46673,-7.31111 15.69095,-15.26882 0.47901,-1.21774 0.88939,-2.33441 0.88939,-2.49107 0,-0.13935 0.14103,-0.25888 0.31799,-0.25888 0.61983,0 2.089,-0.83653 2.76257,-1.56791 1.68252,-1.82799 2.51676,-4.773693 2.375,-8.430577 -0.14175,-3.465615 -1.02771,-5.729048 -2.85199,-7.365766 l -0.7453,-0.639864 -0.0894,-6.46214 z" />
<g
id="g570"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#000000;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g568"
style="fill:#000000;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path558"
style="fill:#800080;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path562"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path564"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path566"
style="fill:#800080;stroke-width:33.6545" />
</g>
</g>
</g>
<g
id="g26"
transform="matrix(0.10400523,0,0,0.10579764,-16.177705,-2.9452481)">
<path
id="path12"
style="fill:#ffe6d5;stroke:#000000;stroke-width:2.38328;stroke-linecap:round;stroke-linejoin:bevel"
d="m 231.67865,74.184632 -10.16583,2.491075 -10.18571,2.505728 -12.45141,-1.35788 -12.4514,-1.35788 v 5.192181 5.187296 l -0.95895,0.903625 c -1.75387,1.70685 -2.58376,3.918367 -2.70791,7.365766 -0.15936,3.656884 0.67261,6.602587 2.35514,8.430577 0.67171,0.73229 2.145,1.56791 2.78243,1.56791 0.15936,0 0.29812,0.13641 0.29812,0.29307 0,0.57472 1.77121,4.65363 2.76256,6.35957 3.4188,5.93754 8.2736,9.9389 13.81779,11.36613 2.69241,0.69677 5.95301,0.69677 8.64543,0 6.74864,-1.74146 12.46673,-7.31111 15.69095,-15.26882 0.47901,-1.21774 0.88939,-2.33441 0.88939,-2.49107 0,-0.13935 0.14103,-0.25888 0.31799,-0.25888 0.61983,0 2.089,-0.83653 2.76257,-1.56791 1.68252,-1.82799 2.51676,-4.773693 2.375,-8.430577 -0.14175,-3.465615 -1.02771,-5.729048 -2.85199,-7.365766 l -0.7453,-0.639864 -0.0894,-6.46214 z" />
<g
id="g25"
transform="matrix(0.10531373,0,0,0.10352952,149.66975,64.802716)"
style="fill:#000000;stroke-width:29.6078">
<g
transform="matrix(0.08797553,0,0,-0.08797553,124.40311,399.9922)"
id="g24"
style="fill:#000000;stroke-width:33.6545">
<path
d="M 3122.6,4604.2 C 2231.7,4380.5 1476.5,4187.4 1444,4174 c -68.8,-28.7 -114.7,-107.1 -114.7,-193.1 0,-42.1 19.1,-76.5 63.1,-120.4 l 61.2,-61.2 554.4,-63.1 c 305.9,-34.4 1152.8,-128.1 1883.1,-210.3 l 1328.7,-149.1 1508.4,380.5 c 827.8,208.4 1514.1,378.5 1523.7,378.5 9.6,0 17.2,-275.3 17.2,-636.6 V 2864.5 L 8078,2673.3 c -286.8,-284.9 -286.8,-237.1 -3.8,-804.9 191.2,-382.4 242.8,-470.3 290.6,-495.2 78.4,-40.1 158.7,-36.3 217.9,11.5 68.8,53.5 489.4,892.8 489.4,973.1 0,89.9 -40.1,147.2 -227.5,334.6 l -174,172.1 v 806.8 808.7 l -53.5,59.3 -53.5,61.2 L 6690,4807 c -1028.6,114.7 -1888.9,206.5 -1909.9,206.5 -21,-0.2 -766.6,-185.6 -1657.5,-409.3 z"
id="path13"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 3841.4,1279.5 c -72.6,-72.7 -84.1,-147.2 -38.2,-239 44,-82.2 103.2,-97.5 391.9,-97.5 233.2,0 269.6,3.8 311.6,38.2 114.7,89.9 109,254.3 -11.5,326.9 -51.6,30.6 -97.5,36.3 -323.1,36.3 h -265.7 z"
id="path14"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 5504.7,1308.2 c -68.8,-42.1 -110.9,-143.4 -91.7,-219.9 5.7,-26.8 38.2,-70.7 68.8,-97.5 53.5,-45.9 66.9,-47.8 321.2,-47.8 288.7,0 340.3,13.4 388.1,95.6 53.5,87.9 42.1,166.3 -32.5,240.9 l -65,65 h -263.8 c -227.6,0 -273.5,-5.7 -325.1,-36.3 z"
id="path15"
style="fill:#000000;stroke-width:33.6545" />
<path
d="m 2352.1,-1601.6 c -326.9,-114.7 -663.4,-242.8 -749.4,-282.9 -265.7,-128.1 -478,-281 -713.1,-518.1 C 576,-2714.3 381,-3025.9 251,-3415.9 145.9,-3735.2 122.9,-3869 111.4,-4270.5 l -11.4,-367.1 68.8,-68.8 66.9,-66.9 H 5000 9764.3 l 66.9,66.9 68.8,68.8 -11.5,367.1 c -9.6,296.3 -19.1,405.3 -57.4,567.8 -128.1,535.3 -344.1,927.2 -728.4,1309.6 -233.2,233.3 -420.6,367.1 -709.3,506.6 -214.1,103.3 -1332.5,497.1 -1412.8,497.1 -36.3,0 -95.6,-42 -227.5,-166.3 -409.1,-384.3 -759,-585 -1229.3,-705.5 -183.5,-47.8 -244.7,-53.5 -504.7,-55.4 -424.4,0 -674.9,57.4 -1061.1,248.5 -242.8,120.5 -462.7,277.2 -711.2,512.4 -151,141.5 -187.4,166.3 -239,164.4 -34.3,-1.9 -328.8,-95.6 -655.7,-210.3 z"
id="path22"
style="fill:#1a1a1a;stroke-width:33.6545" />
</g>
</g>
</g>
<text
xml:space="preserve"
style="font-size:13.1714px;line-height:1.15;font-family:handwriting-draft_free-version;-inkscape-font-specification:handwriting-draft_free-version;stroke:#f9f9f9;stroke-width:0.247581"
x="4.2932463"
y="11.820724"
id="text1"
transform="scale(0.93305916,1.0717434)"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Pacifico;-inkscape-font-specification:Pacifico;fill:#ff0000;stroke:#f9f9f9;stroke-width:0.247581"
x="4.2932463"
y="11.820724">?</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

BIN
icons/listestudent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
icons/listestudentmini.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
icons/nolistestudent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -4,7 +4,9 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -19,60 +21,88 @@ public class verificationNewVersion {
public verificationNewVersion() {
// String[] Version = commandes.version.split("\\.")
// int versionIntegerApplication = Integer.valueOf( Version[0] + Version[1] + Version[2]);
HttpURLConnection conn = null ;
try {
URL url = new URL("https://forge.chapril.org/pablo/analyseWriter/releases");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder content = new StringBuilder();
String host = "forge.chapril.org";
int timeout = 2000; // 5 seconds
while ((line = reader.readLine()) != null) {
content.append(line);
}
reader.close();
conn.disconnect();
// Motif de la sous-chaîne recherchée Vx.x.x
String pattern = "V\\d+\\.\\d+\\.\\d+";
// Vérifier la connectivité avec un ping
try {
InetAddress address = InetAddress.getByName(host);
if (!address.isReachable(timeout)) {
System.err.println("Host is not reachable: " + host);
return; // Sortir de la procédure si le ping échoue
}
} catch (UnknownHostException e) {
System.err.println("Unknown host: " + host);
return; // Sortir de la procédure si l'hôte est inconnu
} catch (IOException e) {
System.err.println("IOException during ping: " + e.getMessage());
return; // Sortir de la procédure en cas d'IOException
}
HttpURLConnection conn = null ;
try {
URL url = new URL("https://forge.chapril.org/pablo/analyseWriter/releases");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000); // 5 seconds timeout for connection
conn.setReadTimeout(5000); // 5 seconds timeout for reading
// Création du motif de recherche
Pattern regex = Pattern.compile(pattern);
int status = conn.getResponseCode();
if (status != HttpURLConnection.HTTP_OK) {
throw new IOException("HTTP error code: " + status);
}
// Création du matcher pour l'entrée donnée
Matcher matcher = regex.matcher(content);
//Version max
int versionMax = 0;
// Parcours des correspondances
while (matcher.find()) {
// Récupération de la sous-chaîne correspondante
String match = matcher.group();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder content = new StringBuilder();
// Conversion en nombre entier
String numericString = match.replaceAll("[^\\d.]", "");
while ((line = reader.readLine()) != null) {
content.append(line);
}
reader.close();
conn.disconnect();
// Motif de la sous-chaîne recherchée Vx.x.x
String pattern = "V\\d+\\.\\d+\\.\\d+";
versionMax = versionNombre(numericString);
if(versionMax>0) {
System.out.println("La nouvelle version est disponible !");
System.out.println(match);
commandes.newVersion = true;
commandes.nameNewVersion = match;
return;
}
}
} catch (IOException e) {
if(conn!=null) conn.disconnect();
e.printStackTrace();
}
// Création du motif de recherche
Pattern regex = Pattern.compile(pattern);
// Création du matcher pour l'entrée donnée
Matcher matcher = regex.matcher(content);
//Version max
int versionMax = 0;
// Parcours des correspondances
while (matcher.find()) {
// Récupération de la sous-chaîne correspondante
String match = matcher.group();
// Conversion en nombre entier
String numericString = match.replaceAll("[^\\d.]", "");
versionMax = versionNombre(numericString);
if(versionMax>0) {
System.out.println("La nouvelle version est disponible !");
System.out.println(match);
commandes.newVersion = true;
commandes.nameNewVersion = match;
return;
}
}
} catch (IOException e) {
if(conn!=null) conn.disconnect();
e.printStackTrace();
}
}

View File

@ -16,7 +16,8 @@ public class actOpenBaseListesEtudiants extends AbstractAction{
private static final long serialVersionUID = 1L;
{
putValue( Action.NAME, "Ouvrir la base de données des listes des étudiants" );
putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/baselisteetudiant.png")) );
putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/baselisteetudiantmini.png")) );
putValue( Action.LARGE_ICON_KEY, new ImageIcon(create.class.getResource("/resources/baselisteetudiant.png")) );
putValue( Action.SHORT_DESCRIPTION, "Ouvrir la base de données des listes des étudiants" );
}
@Override

View File

@ -16,6 +16,7 @@ import javax.swing.JOptionPane;
import MEPTL.commandes;
import MEPTL.meptl;
import MEPTL.verificationFichierAnalyse_node_commandesSujet;
import baseListesEtudiants.chargeListeEtudiants;
import cXML.node;
import fenetres.ChargeFichierXML;
@ -105,8 +106,14 @@ public class chargeEvaluation {
commandes.nodeCSV = evaluation.retourneFirstEnfantsByName("fileCSV");
if(!commandes.nodeCSV.isVide()) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")!=null) {
String nameListeStudent = commandes.nodeCSV.getAttributs().get("nameListStudent");
chargeListeEtudiants.chargeDansLeNodeCSVListeEtudiants(nameListeStudent);
}
}
commandes.contenuFichierSVG = evaluation.retourneFirstEnfantsByName("nodSVG").retourneLesContenusEnfants("");
// commandes.contenuFichierSVG = evaluation.retourneFirstEnfantsByName("nodSVG").retourneLesContenusEnfants("");
commandes.fichierAnalyseValide = true;

View File

@ -76,7 +76,6 @@ public class creerNouvelleEvaluation {
evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) );
evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) );
evaluation.getAttributs().put("analyse_nombres_modifications_simultané_maxi", String.valueOf(commandes.analyse_nombres_modifications_simultané_maxi) );
evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) );
if(commandes.nameCSV!=null) {
@ -85,33 +84,16 @@ public class creerNouvelleEvaluation {
evaluation.getAttributs().put("nameCSV", "");
}
if(commandes.nameSVG!=null) {
if(!commandes.nameSVG.isBlank()) {
evaluation.getAttributs().put("nameSVG", commandes.nameSVG );
}
}else {
evaluation.getAttributs().put("nameSVG", "" );
}
//Supprime le node CSV s'il existe, pour le remplacer par le node commandes.nodeCSV
node nodremove = evaluation.retourneFirstEnfantsByName("fileCSV");
if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove);
// ajoute les informations sur la liste d'étudiant
// Dans le nodeCSV, il y a toutes les informations sur chauqe étudiants
// Mais dans le node évaluation, on ne garde que les attribut du node fileCSV.
if(commandes.nodeCSV!=null) {
evaluation.getNodes().add(commandes.nodeCSV);
}
if(commandes.nameSVG!=null) {
if(!commandes.nameSVG.isBlank() && !commandes.contenuFichierSVG.isBlank()) {
node SVG = new node();
SVG.setNomElt("nodSVG");
SVG.setContenu(commandes.contenuFichierSVG);
if(SVG!=null) {
evaluation.getNodes().add(SVG);
}
}
evaluation.retourneFirstEnfantsByName("fileCSV").getNodes().clear();
}
//Création d'une évaluation
@ -122,7 +104,6 @@ public class creerNouvelleEvaluation {
}
}
new ecritureBaseEvaluation(evaluation);
commandes.hashCodeEvaluationSave = evaluation.hashCode();

View File

@ -0,0 +1,13 @@
package baseListesEtudiants;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
public static boolean isValidEmail(String email) {
String emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$";
Pattern pattern = Pattern.compile(emailPattern);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
}

View File

@ -6,9 +6,25 @@ public class chargeListeEtudiants {
public static void chargeDansleNodeCSVListeEtudiants(Integer index) {
if(commandes.listesEtudiants!=null) {
if(commandes.listesEtudiants.getNodes().size()>0) {
if(commandes.listesEtudiants.getNodes().size()>index && index >= 0 ) {
commandes.nodeCSV = commandes.listesEtudiants.getNodes().get(index);
commandes.fourniCSV=true;
}else {
commandes.nodeCSV = null;
commandes.fourniCSV=false;
}
}
}
public static void chargeDansLeNodeCSVListeEtudiants(String nameListe) {
if(commandes.listesEtudiants!=null) {
if(commandes.listesEtudiants.getNodes().size()>0) {
commandes.nodeCSV = commandes.listesEtudiants.retourneFirstNodeByNameAndAttributValueExactStrict("fileCSV", "nameListStudent", nameListe);
if(commandes.nodeCSV!=null) {
commandes.fourniCSV=true;
}else {
commandes.fourniCSV=true;
}
}
}
}

View File

@ -0,0 +1,13 @@
package baseListesEtudiants;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class idValidator {
public static boolean isValidId(String id) {
String idPattern = "^[0-9]{8}$";
Pattern pattern = Pattern.compile(idPattern);
Matcher matcher = pattern.matcher(id);
return matcher.matches();
}
}

View File

@ -79,6 +79,19 @@ public class myTableStudent extends AbstractTableModel{
fireTableRowsInserted(0, commandes.nodeCSV.getNodes().size()-1);
}
}
public void removeRow(int row) {
if (row >= 0 && row < commandes.nodeCSV.getNodes().size()) {
commandes.nodeCSV.getNodes().remove(row);
fireTableRowsDeleted(row, row);
}
}
public void addStudent(node newStudent) {
if(commandes.nodeCSV!=null) {
commandes.nodeCSV.getNodes().add(newStudent);
}
}
}

View File

@ -0,0 +1,13 @@
package baseListesEtudiants;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class nameStudentValidator {
public static boolean isValidName(String name) {
String namePattern = "^[a-zA-Z -]+?$";
Pattern pattern = Pattern.compile(namePattern);
Matcher matcher = pattern.matcher(name);
return matcher.matches();
}
}

View File

@ -3,18 +3,21 @@ package fenetres;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.event.ListSelectionEvent;
@ -22,13 +25,16 @@ import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableColumnModel;
import MEPTL.commandes;
import baseListesEtudiants.EmailValidator;
import baseListesEtudiants.chargeListeEtudiants;
import baseListesEtudiants.idValidator;
import baseListesEtudiants.myTableBaseListesEtudiants;
import baseListesEtudiants.myTableStudent;
import baseListesEtudiants.nameStudentValidator;
import cXML.node;
import net.miginfocom.swing.MigLayout;
public class baseDonneesListesEtudiants extends JFrame{
private static final long serialVersionUID = 1L;
@ -41,11 +47,13 @@ public class baseDonneesListesEtudiants extends JFrame{
private final JButton btnFermer = new JButton("<html><p>Femer</p></html>");
private JButton btnAddListeEtudiants = new JButton();
private JButton btnRemoveListe = new JButton("<html><p>Supprimer une liste</p></html>");
private JButton btnPasDeListe = new JButton();
private JButton btnAddNewStudent = new JButton("<html><p>Ajouter un nouvel étudiant</p></html>");
static JLabel lblNomListe = new JLabel("Pas de liste sélectionnée.");
JScrollPane scrollPaneTable = new JScrollPane();
JScrollPane scrollPaneBoutons = new JScrollPane();
private static int indexSelect=-1;
ListSelectionModel lsm = null;
static ListSelectionModel lsm = null;
static ListSelectionModel rowSMTable = null;
public baseDonneesListesEtudiants() {
@ -98,6 +106,19 @@ public class baseDonneesListesEtudiants extends JFrame{
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
rowSMTable = table.getSelectionModel();
// Ajout du label d'instruction
JPanel panelCentre = new JPanel();
panelCentre.setLayout(new BorderLayout());
JLabel lblInstruction = new JLabel("<html>Cliquez sur une ligne de la table ci-dessous<br>pour sélectionner une liste d'étudiants.</html>");
lblInstruction.setHorizontalAlignment(SwingConstants.CENTER);
lblInstruction.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblInstruction, BorderLayout.NORTH);
JScrollPane scrollPaneDroite = new JScrollPane(table);
panelCentre.add(scrollPaneDroite, BorderLayout.CENTER);
getContentPane().add(panelCentre, BorderLayout.EAST);
lblNomListe = new JLabel("Pas de liste sélectionnée.");
lblNomListe.setBackground(Color.GREEN);
lblNomListe.setHorizontalAlignment(SwingConstants.CENTER);
@ -115,16 +136,30 @@ public class baseDonneesListesEtudiants extends JFrame{
btnAddListeEtudiants.setText("<html><p>Ajouter une liste ou des étudiants<br>à une liste depuis un fichier CSV</p></html>");
btnAddListeEtudiants.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/addStudentbaselisteetudiant.png")));
panelGauche.add(btnAddListeEtudiants, "cell 0 1");
btnPasDeListe.setFont(new Font("Tahoma", Font.BOLD, 13));
btnPasDeListe.setHorizontalAlignment(SwingConstants.LEFT);
btnPasDeListe = new JButton("<html>Ne pas sélectionner de liste</html>");
btnPasDeListe.setFont(new Font("Tahoma", Font.BOLD, 13));
btnPasDeListe.setHorizontalAlignment(SwingConstants.LEFT);
btnPasDeListe.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/nolistestudent.png")));
panelGauche.add(btnPasDeListe, "cell 0 2");
btnAddNewStudent.setFont(new Font("Tahoma", Font.BOLD, 13));
btnAddNewStudent.setHorizontalAlignment(SwingConstants.LEFT);
btnAddNewStudent.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/addnewstudent.png")));
panelGauche.add(btnAddNewStudent, "cell 0 3");
btnRemoveListe.setFont(new Font("Tahoma", Font.BOLD, 13));
btnRemoveListe.setHorizontalAlignment(SwingConstants.LEFT);
btnRemoveListe.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/removeListe.png")));
panelGauche.add(btnRemoveListe, "cell 0 3");
panelGauche.add(btnRemoveListe, "cell 0 5");
btnFermer.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/quitteliste.png")));
btnFermer.setHorizontalAlignment(SwingConstants.LEFT);
btnFermer.setFont(new Font("Tahoma", Font.BOLD, 15));
panelGauche.add(btnFermer, "cell 0 5,growx,aligny top");
panelGauche.add(btnFermer, "cell 0 6,growx,aligny top");
modelStudent.addOrUpdate();
@ -143,14 +178,14 @@ public class baseDonneesListesEtudiants extends JFrame{
columnModelStudent.getColumn(3).setMaxWidth(maxWidthColumn2);
tableStudent.setFont(new Font("Tahoma", Font.PLAIN, 14));
JScrollPane scrollPaneDroite = new JScrollPane(table);
getContentPane().add(scrollPaneDroite, BorderLayout.EAST);
scrollPaneTable = new JScrollPane(tableStudent);
getContentPane().add(scrollPaneTable, BorderLayout.CENTER);
ListenerAction();
ListenerTables();
}
@ -168,10 +203,11 @@ public class baseDonneesListesEtudiants extends JFrame{
instance = new baseDonneesListesEtudiants();
}else {
model.addOrUpdate();
table = new JTable(model);
table.setModel(model);
rowSMTable = table.getSelectionModel();
modelStudent.addOrUpdate();
tableStudent = new JTable(modelStudent);
tableStudent.setModel(modelStudent);
if(commandes.nodeCSV!=null) if(!commandes.nodeCSV.isVide()) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")!=null) {
lblNomListe.setText("Liste : " +commandes.nodeCSV.getAttributs().get("nameListStudent"));
@ -223,12 +259,113 @@ public class baseDonneesListesEtudiants extends JFrame{
public void actionPerformed(ActionEvent e) {
CustomInputDialogListeEtudiant.showCustomDialogInputStudentBase();
model.addOrUpdate();
table = new JTable(model);
table.setModel(model);
}
});
btnPasDeListe.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
commandes.nodeCSV = null;
lblNomListe.setText("Pas de liste sélectionnée.");
}
});
rowSMTable.addListSelectionListener(new ListSelectionListener() {
btnAddNewStudent.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Créer des champs pour entrer les informations de l'étudiant
JTextField idField = new JTextField();
JTextField nameField = new JTextField();
JTextField prenomField = new JTextField();
JTextField courrielField = new JTextField();
// Créer un panneau pour les champs
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(new JLabel("Nom :"));
panel.add(nameField);
panel.add(new JLabel("Prenom :"));
panel.add(prenomField);
panel.add(new JLabel("ID :"));
panel.add(idField);
panel.add(new JLabel("Courriel :"));
panel.add(courrielField);
// Afficher la boîte de dialogue
int result = JOptionPane.showConfirmDialog(null, panel, "Ajouter un étudiant", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
try {
String name = nameField.getText();
String prenom = prenomField.getText();
String id = idField.getText();
String courriel = courrielField.getText();
if(!EmailValidator.isValidEmail(courriel)) {
JOptionPane.showMessageDialog(null, "Le courriel n'est pas correct.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
if(!idValidator.isValidId(id)) {
JOptionPane.showMessageDialog(null, "L'ID n'est pas correct.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
if(!nameStudentValidator.isValidName(name)) {
JOptionPane.showMessageDialog(null, "Le nom n'est pas correct.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
if(!nameStudentValidator.isValidName(prenom)) {
JOptionPane.showMessageDialog(null, "Le prenom n'est pas correct.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
String champNom = "name";
String champPrenom = "firstname";
String champId = "identification";
String champEmail = "adresse";
boolean erreur = false;
if(commandes.nodeCSV!=null) {
if(commandes.nodeCSV.getAttributs().get("id")!=null) champId = commandes.nodeCSV.getAttributs().get("id");
if(commandes.nodeCSV.getAttributs().get("email")!=null) champEmail = commandes.nodeCSV.getAttributs().get("email");
if(commandes.nodeCSV.getAttributs().get("name")!=null) champNom = commandes.nodeCSV.getAttributs().get("name");
if(commandes.nodeCSV.getAttributs().get("firstname")!=null) champPrenom = commandes.nodeCSV.getAttributs().get("firstname");
if(commandes.nodeCSV.retourneFirstNodeByNameAndAttributValueExactStrict("student", champId, id)!=null) erreur=true;
if(commandes.nodeCSV.retourneFirstNodeByNameAndAttributValueExactStrict("student", champEmail, courriel)!=null) erreur=true;
}
// Ajouter l'étudiant au modèle de la table
if(!erreur) {
node nouvelEtudiant = new node();
nouvelEtudiant.setNomElt("student");
nouvelEtudiant.getAttributs().put(champNom,name);
nouvelEtudiant.getAttributs().put(champPrenom,prenom);
nouvelEtudiant.getAttributs().put(champId,id);
nouvelEtudiant.getAttributs().put(champEmail,courriel);
((myTableStudent) tableStudent.getModel()).addStudent(nouvelEtudiant);
baseDonneesListesEtudiants.getInstance(indexSelect);
}else {
JOptionPane.showMessageDialog(null, "<html>Impossible d'ajouter cet étudiant car l'ID et/ou le courriel"
+ "<br>sont déjà présents.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "Veuillez entrer des informations valides", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
}
});
}
private void ListenerTables() {
rowSMTable.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//Ignore extra messages.
@ -243,7 +380,44 @@ public class baseDonneesListesEtudiants extends JFrame{
}
});
table.addMouseListener(new MouseListener() {
tableStudent.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
int row = tableStudent.getSelectedRow();
if (row != -1) {
// Récupérer les données de la ligne sélectionnée
int columnCount = tableStudent.getColumnCount();
StringBuilder rowData = new StringBuilder();
for (int column = 0; column < columnCount; column++) {
rowData.append(tableStudent.getColumnName(column)).append(": ")
.append(tableStudent.getValueAt(row, column)).append("\n");
}
// Afficher les données dans une boîte de dialogue et demander la confirmation pour suppression
int response = JOptionPane.showConfirmDialog(
null,
rowData.toString() + "\nVoulez-vous supprimer cet étudiant?",
"Détails de l'étudiant",
JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE
);
// Supprimer l'étudiant si l'utilisateur a confirmé
if (response == JOptionPane.YES_OPTION) {
((myTableStudent) tableStudent.getModel()).removeRow(row);
baseDonneesListesEtudiants.getInstance(indexSelect);
}
}
}
}
});
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() >0) {
@ -257,33 +431,6 @@ public class baseDonneesListesEtudiants extends JFrame{
}
}
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
}

View File

@ -6,8 +6,8 @@ import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
@ -43,78 +43,78 @@ public class chargeBaseAuDemarrage extends JFrame {
private final JPanel panelDroite = new JPanel();
private final JLabel label = new JLabel(commandes.PathBaseEvaluations);
public chargeBaseAuDemarrage() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
public chargeBaseAuDemarrage() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 1200, 600);
int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
setIconImage(img.getImage());
setTitle(commandes.Titre + " - La base de données des évaluations");
getContentPane().setLayout(new BorderLayout(2, 2));
setBounds(100, 100, 1200, 600);
int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
setIconImage(img.getImage());
setTitle(commandes.Titre + " - La base de données des évaluations");
getContentPane().setLayout(new BorderLayout(2, 2));
model.addOrUpdate();
table = new JTable(model);
scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
getContentPane().add(scrollPane,BorderLayout.CENTER);
panelBas.setLayout(new MigLayout("", "[394px][394px][]", "[53px]"));
panelBas.add(label, "flowy,cell 0 0,grow");
getContentPane().add(panelBas, BorderLayout.SOUTH);
btnCheminVersBaseDonnees.setForeground(new Color(0, 128, 192));
btnCheminVersBaseDonnees.setFont(new Font("Tahoma", Font.BOLD, 16));
btnCheminVersBaseDonnees.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
btnCheminVersBaseDonnees.setSelectedIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
panelBas.add(btnCheminVersBaseDonnees, "cell 2 0,alignx right,growy");
lblInformationBaseEvluation.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/accueilChargeEvaluation.png")));
model.addOrUpdate();
table = new JTable(model);
scrollPane = new JScrollPane(table);
//*Le haut
lblInformationBaseEvluation.setHorizontalAlignment(SwingConstants.CENTER);
getContentPane().add(panelHaut, BorderLayout.NORTH);
lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 16));
panelHaut.add(lblInformationBaseEvluation);
//Add the scroll pane to this panel.
getContentPane().add(scrollPane,BorderLayout.CENTER);
panelBas.setLayout(new MigLayout("", "[394px][394px][]", "[53px]"));
panelBas.add(label, "flowy,cell 0 0,grow");
//*Détection de la ligne sélectionnée
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
FlowLayout flowLayout_1 = (FlowLayout) panelGauche.getLayout();
flowLayout_1.setHgap(10);
getContentPane().add(panelGauche, BorderLayout.WEST);
FlowLayout flowLayout = (FlowLayout) panelDroite.getLayout();
flowLayout.setHgap(10);
getContentPane().add(panelDroite, BorderLayout.EAST);
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//Ignore extra messages.
if (e.getValueIsAdjusting()) return;
lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
System.out.println("No rows are selected.");
} else {
indexSelect = lsm.getMinSelectionIndex();
System.out.println("Row " + indexSelect + " is now selected.");
}
}
});
ListenerAction();
setVisible(true);
}
getContentPane().add(panelBas, BorderLayout.SOUTH);
btnCheminVersBaseDonnees.setForeground(new Color(0, 128, 192));
btnCheminVersBaseDonnees.setFont(new Font("Tahoma", Font.BOLD, 16));
btnCheminVersBaseDonnees.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
btnCheminVersBaseDonnees.setSelectedIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
panelBas.add(btnCheminVersBaseDonnees, "cell 2 0,alignx right,growy");
lblInformationBaseEvluation.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/accueilChargeEvaluation.png")));
//*Le haut
lblInformationBaseEvluation.setHorizontalAlignment(SwingConstants.CENTER);
getContentPane().add(panelHaut, BorderLayout.NORTH);
lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 16));
panelHaut.add(lblInformationBaseEvluation);
//*Détection de la ligne sélectionnée
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
FlowLayout flowLayout_1 = (FlowLayout) panelGauche.getLayout();
flowLayout_1.setHgap(10);
getContentPane().add(panelGauche, BorderLayout.WEST);
FlowLayout flowLayout = (FlowLayout) panelDroite.getLayout();
flowLayout.setHgap(10);
getContentPane().add(panelDroite, BorderLayout.EAST);
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//Ignore extra messages.
if (e.getValueIsAdjusting()) return;
lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
System.out.println("No rows are selected.");
} else {
indexSelect = lsm.getMinSelectionIndex();
System.out.println("Row " + indexSelect + " is now selected.");
}
}
});
ListenerAction();
setVisible(true);
}
@ -135,7 +135,7 @@ private void ListenerAction() {
/**
* Chargement d'une évaluation par double click.
*/
table.addMouseListener( new MouseListener() {
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
@ -154,23 +154,6 @@ private void ListenerAction() {
}
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});

View File

@ -22,10 +22,12 @@ import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
@ -44,7 +46,6 @@ import action.actOpenBaseListesEtudiants;
import action.actSaveEvaluation;
import action.actTutoriels;
import cXML.Run;
import cXML.node;
import evaluer.evaluerLesFichiersEtudiants;
import net.miginfocom.swing.MigLayout;
@ -68,7 +69,7 @@ public class evaluate extends JFrame {
private JPanel contentPane;
private static JLabel lblPath;
private static JLabel lblFileAnalyse;
private static JLabel lblChargementFichierCSV;
private static JLabel lblListe;
private static JLabel lblImageDossierEtudiant;
private static JLabel lblNoFeedBack;
private static JLabel lblNoDeatail;
@ -85,6 +86,8 @@ public class evaluate extends JFrame {
private static JCheckBox chckbxVerif;
private static JCheckBox chckbxNoDetail;
private static JCheckBox chckPasDeProgression ;
private static JScrollPane scrollPane = new JScrollPane();
private static JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();
private static afficheText txtpnmessages;
private JButton btnChargeEvaluation = new JButton();
private JButton btnSaveEvaluation = new JButton();
@ -146,7 +149,7 @@ public class evaluate extends JFrame {
JPanel panelBoutons = new JPanel();
panelWestBase.add(panelBoutons, BorderLayout.WEST);
panelBoutons.setLayout(new MigLayout("", "[24px][260px]", "[][][][][][][][][][][][][][][]"));
panelBoutons.setLayout(new MigLayout("", "[24px][260px]", "[][][][][][][][][][][][][][][][]"));
JLabel lblIconAccueilEvaluation = new JLabel("");
@ -171,15 +174,28 @@ public class evaluate extends JFrame {
lblPath.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblPath.setText("<HTML><B><U>Dossier de l'évaluation</U></B> : </HTML>");
// panelWestBaseNord.add("");
chckbxfichiersEtudiants = new JCheckBox("<html>Les fichiers des étudiants<b><br>ne sont pas</b> dans des dossiers nominatifs</html>");
chckbxfichiersEtudiants.setToolTipText("Cochez si les fichiers ne sont pas dans des dossiers nominatifs.");
JLabel lblListeStudent = new JLabel(new ImageIcon(getClass().getResource("/resources/listestudent.png")));
panelBoutons.add(lblListeStudent, "cell 0 0");
lblListe = new JLabel("<html><b>Liste ???</b></html>");
lblListe.setToolTipText("Le nom de la liste d'étudiant chargé en memoire.");
lblListe.setForeground(Color.BLUE);
lblListe.setHorizontalAlignment(SwingConstants.CENTER);
lblListe.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblListe.setOpaque(true);
panelBoutons.add(lblListe, "cell 1 0,alignx left,aligny center");
lblImageDossierEtudiant = new JLabel(new ImageIcon(getClass().getResource("/resources/dossieretudiant.png")));
panelBoutons.add(lblImageDossierEtudiant, "flowx,cell 0 1,alignx left,aligny center");
panelBoutons.add(lblImageDossierEtudiant, "flowx,cell 0 2,alignx left,aligny center");
chckbxfichiersEtudiants.setFont(new Font("Tahoma", Font.PLAIN, 12));
chckbxfichiersEtudiants.setToolTipText("Cochez si les fichiers des étudiants ne sont pas dans des dossier nominatifs");
panelBoutons.add(chckbxfichiersEtudiants, "cell 1 1,growx,aligny center");
panelBoutons.add(chckbxfichiersEtudiants, "cell 1 2,growx,aligny center");
chckbxfichiersEtudiants.setSelected(commandes.fichierStudentMoodle);
if(commandes.fichierStudentMoodle) {
chckbxfichiersEtudiants.setToolTipText("Décochez si les fichiers sont dans des dossiers nominatifs.");
@ -207,14 +223,11 @@ public class evaluate extends JFrame {
}
}
});
chckPasDeProgression = new JCheckBox("<html><p><b>Afficher</b> le coefficient de<br>progression dans les feedbacks.</p></html>");
chckPasDeProgression.setToolTipText("Cochez si vous ne voulez pas afficher le coef. de profression dans les feeedbacks.");
JLabel lblafficheprogression = new JLabel((new ImageIcon(create.class.getResource("/resources/afficheprogression.png"))));
panelBoutons.add(lblafficheprogression, "cell 0 0");
panelBoutons.add(lblafficheprogression, "cell 0 1");
if(commandes.noAfficheProgression) {
chckPasDeProgression.setToolTipText("Décochez si vous voulez afficher le coef. de profression dans les feeedbacks.");
chckPasDeProgression.setText("<html><p><b>Ne pas afficher</b> le coefficient de<br>progression dans les feedbacks.</p></html>");
@ -225,7 +238,7 @@ public class evaluate extends JFrame {
lblafficheprogression.setIcon(new ImageIcon(create.class.getResource("/resources/afficheprogression.png")));
}
chckPasDeProgression.setFont(new Font("Tahoma", Font.PLAIN, 12));
panelBoutons.add(chckPasDeProgression, "cell 1 0,alignx left,aligny center");
panelBoutons.add(chckPasDeProgression, "cell 1 1,alignx left,aligny center");
chckPasDeProgression.setSelected(commandes.noAfficheProgression);
chckPasDeProgression.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
@ -248,10 +261,10 @@ public class evaluate extends JFrame {
chckbxnoFeedback = new JCheckBox("<html><b>Générer</b> des feedbacks<br>pour chaque étudiant.</html>");
chckbxnoFeedback.setToolTipText("Cochez si vous ne voulez pas générer des feedbacks.");
chckbxnoFeedback.setFont(new Font("Tahoma", Font.PLAIN, 12));
panelBoutons.add(chckbxnoFeedback, "cell 1 2,growx,aligny top");
panelBoutons.add(chckbxnoFeedback, "cell 1 3,growx,aligny top");
chckbxnoFeedback.setSelected(commandes.sansFeeback);
lblNoFeedBack = new JLabel(new ImageIcon(getClass().getResource("/resources/feedbackstudent.png")));
panelBoutons.add(lblNoFeedBack, "cell 0 2");
panelBoutons.add(lblNoFeedBack, "cell 0 3");
if(commandes.sansFeeback) {
chckbxnoFeedback.setToolTipText("Décochez si vous voulez générer des feedbacks.");
chckbxnoFeedback.setText("<html><b>Ne pas générer</b> des feedbacks<br>pour chaque étudiant.</html>");
@ -283,10 +296,10 @@ public class evaluate extends JFrame {
lblNoDeatail = new JLabel(new ImageIcon(getClass().getResource("/resources/detailfeedback.png")));
chckbxNoDetail = new JCheckBox("<html><b>Afficher</b> les détails des erreurs<br>dans les feedbacks.</html>");
chckbxNoDetail.setFont(new Font("Tahoma", Font.PLAIN, 12));
panelBoutons.add(chckbxNoDetail, "cell 1 3,growx,aligny top");
panelBoutons.add(chckbxNoDetail, "cell 1 4,growx,aligny top");
chckbxNoDetail.setSelected(commandes.noDetail);
chckbxNoDetail.setToolTipText("Cochez si vous ne voulez pas afficher les détails de l'évaluation dans les feedbacks.");
panelBoutons.add(lblNoDeatail, "cell 0 3");
panelBoutons.add(lblNoDeatail, "cell 0 4");
if(commandes.noDetail) {
chckbxNoDetail.setToolTipText("Décochez si vous voulez afficher les détails de l'évaluation dans les feedbacks.");
chckbxNoDetail.setText("<html><b>Ne pas afficher</b> les détails des erreurs<br>dans les feedbacks.</html>");
@ -321,8 +334,8 @@ public class evaluate extends JFrame {
chckbxNoNote.setFont(new Font("Tahoma", Font.PLAIN, 12));
chckbxNoNote.setSelected(commandes.noNote);
lblnonote = new JLabel(new ImageIcon(evaluate.class.getResource("/resources/notestudent.png")));
panelBoutons.add(lblnonote, "cell 0 4");
panelBoutons.add(chckbxNoNote, "cell 1 4,grow");
panelBoutons.add(lblnonote, "cell 0 5");
panelBoutons.add(chckbxNoNote, "cell 1 5,grow");
if(commandes.noNote) {
chckbxNoNote.setToolTipText("Décochez si vous voulez faire apparaître les notes dans les feedbacks.");
chckbxNoNote.setText("\"<html><b>Ne pas Afficher</b> les notes dans les feedbacks.</html>\"");
@ -356,8 +369,8 @@ public class evaluate extends JFrame {
chckbxZipfeedback.setToolTipText("Cochez si vous voulez placer les feedbacks dans une archive ZIP");
chckbxZipfeedback.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblnozip = new JLabel(new ImageIcon(evaluate.class.getResource("/resources/zipstudent.png")));
panelBoutons.add(lblnozip, "cell 0 5");
panelBoutons.add(chckbxZipfeedback, "cell 1 5,grow");
panelBoutons.add(lblnozip, "cell 0 6");
panelBoutons.add(chckbxZipfeedback, "cell 1 6,grow");
chckbxZipfeedback.setSelected(commandes.zipfeedback);
if(commandes.zipfeedback) {
chckbxZipfeedback.setToolTipText("Décochez si vous ne voulez pas placer les feedbacks dans une archive ZIP");
@ -388,9 +401,9 @@ public class evaluate extends JFrame {
chckbxVerif = new JCheckBox("<html><b>Ne pas vérifier</b> les historiques avant<br>l'évaluation des fichiers.</html>");
lblVerifHistorique = new JLabel(new ImageIcon(evaluate.class.getResource("/resources/noverifhistoriquestudent.png")));
panelBoutons.add(lblVerifHistorique, "cell 0 6");
panelBoutons.add(lblVerifHistorique, "cell 0 7");
chckbxVerif.setFont(new Font("Tahoma", Font.PLAIN, 12));
panelBoutons.add(chckbxVerif, "flowy,cell 1 6,growx,aligny top");
panelBoutons.add(chckbxVerif, "flowy,cell 1 7,growx,aligny top");
chckbxVerif.setSelected(commandes.verifHisto2);
if(commandes.verifHisto2) {
chckbxVerif.setToolTipText("Décochez si vous voulez ne pas vérifier l'historique des modifications.");
@ -419,25 +432,12 @@ public class evaluate extends JFrame {
}
});
lblChargementFichierCSV = new JLabel("<html>Pas de liste des étudiants</html>");
panelBoutons.add(lblChargementFichierCSV, "cell 1 7,alignx left,aligny center");
lblCsvNote = new JLabel(new ImageIcon(evaluate.class.getResource("/resources/nocsvstudent.png")));
panelBoutons.add(lblCsvNote, "cell 0 9");
panelBoutons.add(lblCsvNote, "cell 0 8");
chckCSVNotes = new JCheckBox("<html><b>Ne pas créer</b> un fichier CSV<br>des notes.</html>");
chckCSVNotes.setToolTipText("Cochez si vous voulez importer les notes dans un fichier CSV.");
panelBoutons.add(chckCSVNotes, "flowx,cell 1 9,grow");
panelBoutons.add(chckCSVNotes, "flowx,cell 1 8,grow");
chckCSVNotes.setSelected(commandes.ecritNoteCSV);
if(commandes.ecritNoteCSV) {
chckCSVNotes.setToolTipText("Décochez si vous voulez ne pas importer les notes dans un fichier CSV.");
lblCsvNote.setIcon(new ImageIcon(evaluate.class.getResource("/resources/csvstudent.png")));
chckCSVNotes.setText("<html><b>Ne pas créer</b> un fichier CSV<br>des notes.</html>");
}else {
lblCsvNote.setIcon(new ImageIcon(evaluate.class.getResource("/resources/nocsvstudent.png")));
chckCSVNotes.setToolTipText("Cochez si vous voulez importer les notes dans un fichier CSV.");
chckCSVNotes.setText("<html><b>Créer</b> un fichier CSV<br>des notes.</html>");
}
chckCSVNotes.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(chckCSVNotes.isSelected()) {
@ -455,6 +455,15 @@ public class evaluate extends JFrame {
}
}
});
if(commandes.ecritNoteCSV) {
chckCSVNotes.setToolTipText("Décochez si vous voulez ne pas importer les notes dans un fichier CSV.");
lblCsvNote.setIcon(new ImageIcon(evaluate.class.getResource("/resources/csvstudent.png")));
chckCSVNotes.setText("<html><b>Ne pas créer</b> un fichier CSV<br>des notes.</html>");
}else {
lblCsvNote.setIcon(new ImageIcon(evaluate.class.getResource("/resources/nocsvstudent.png")));
chckCSVNotes.setToolTipText("Cochez si vous voulez importer les notes dans un fichier CSV.");
chckCSVNotes.setText("<html><b>Créer</b> un fichier CSV<br>des notes.</html>");
}
@ -462,7 +471,6 @@ public class evaluate extends JFrame {
contentPane.add(panelCentre, BorderLayout.CENTER);
panelCentre.setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
panelCentre.add(scrollPane);
@ -475,18 +483,20 @@ public class evaluate extends JFrame {
scrollPane.setViewportView(txtpnmessages);
if(commandes.fourniCSV) {
lblChargementFichierCSV.setBackground(new Color(40,180,40));
if(commandes.nodeCSV!=null) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) {
commandes.nodeCSV.getAttributs().put("nameListStudent","?");
commandes.nodeCSV.getAttributs().put("year", "?");
lblListe.setText("<html><b>Liste ???</b></html>");
}else {
lblListe.setText("<html><b>"+commandes.nodeCSV.getAttributs().get("nameListStudent")+"</b></html>");
}
lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent"));
lblChargementFichierCSV.setOpaque(true);
}else {
lblChargementFichierCSV.setOpaque(false);
lblListe.setText("<html><b>Liste ???</b></html>");
}
// Positionne le curseur au début du texte pour que le JScrollPane affiche le haut
positionScrollDebut();
this.setExtendedState(MAXIMIZED_BOTH);
ListenerAction();
@ -495,6 +505,15 @@ public class evaluate extends JFrame {
}
public static void positionScrollDebut() {
// Positionne le curseur au début du texte pour que le JScrollPane affiche le haut
SwingUtilities.invokeLater(() -> {
txtpnmessages.setCaretPosition(0);
verticalScrollBar.setValue(verticalScrollBar.getMinimum());
});
}
private void ListenerAction() {
/**
@ -526,6 +545,7 @@ public class evaluate extends JFrame {
}else {
txtpnmessages.setText(baliseStyle.balise() + "<hr class=\"city\"><h1>*** Veuillez charger une évaluation ***</h1><hr>");
}
positionScrollDebut();
isDispose=false;
return instance;
}
@ -561,7 +581,6 @@ public class evaluate extends JFrame {
JMenu mnNewMenu = new JMenu("Base des évaluations");
mnNewMenu.setMnemonic( 'F' );
menuBar.add(mnNewMenu);
// mnNewMenu.add( new actPathBaseEvaluations() );
JMenuItem menuItem = mnNewMenu.add( new actOpenBaseEvaluation() );
menuItem.setText("Base des évaluations");
mnNewMenu.addSeparator();
@ -573,15 +592,9 @@ public class evaluate extends JFrame {
JMenu mnMenu_Liste_Etudiant = new JMenu("Liste des étudiants");
menuBar.add(mnMenu_Liste_Etudiant);
mnMenu_Liste_Etudiant.add(actChargeListeEtudiantCSV);
mnMenu_Liste_Etudiant.add(new actOpenBaseListesEtudiants());
mnMenu_Liste_Etudiant.addSeparator();
mnMenu_Liste_Etudiant.add(actDeleteListeEtudiantCSV);
mnMenu_Liste_Etudiant.addSeparator();
mnMenu_Liste_Etudiant.add(actAfficheListeEtudiant );
mnMenu_Liste_Etudiant.addSeparator();
mnMenu_Liste_Etudiant.add(actModificationListeEtudiantCSV);
mnMenu_Liste_Etudiant.addSeparator();
mnMenu_Liste_Etudiant.add(actVerifCSV );
mnMenu_Liste_Etudiant.add(actAfficheListeEtudiant);
JMenu mnMenu_Evaluation = new JMenu("Evaluer des étudiants");
@ -611,7 +624,7 @@ public class evaluate extends JFrame {
*/
private void createToolBar() {
toolBar = new JToolBar();
btnChargeEvaluation = toolBar.add( new actOpenBaseEvaluation());
btnChargeEvaluation = toolBar.add(new actOpenBaseEvaluation());
btnChargeEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/BaseEvaluations.png")));
btnChargeEvaluation.setHideActionText(true);
toolBar.add(btnChargeEvaluation);
@ -621,7 +634,6 @@ public class evaluate extends JFrame {
btnSaveEvaluation.setIcon(new ImageIcon(evaluate.class.getResource("/resources/saveEvaluation.png")));
btnSaveEvaluation.setVisible(true);
toolBar.add(btnSaveEvaluation);
toolBar.addSeparator();
@ -652,22 +664,22 @@ public class evaluate extends JFrame {
btnBaseListeEtudiant.setText("");
toolBar.add(btnBaseListeEtudiant);
JButton btnFichierCSV = toolBar.add(actChargeListeEtudiantCSV );
btnFichierCSV.setHideActionText(true);
btnFichierCSV.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png")));
toolBar.add(btnFichierCSV);
// JButton btnFichierCSV = toolBar.add(actChargeListeEtudiantCSV );
// btnFichierCSV.setHideActionText(true);
// btnFichierCSV.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png")));
// toolBar.add(btnFichierCSV);
// Pour l'instant je cache ce bouton car il n'est pas utile.
JButton btnVerificationCSVavecFichierAnalyse = toolBar.add( actVerifCSV );
btnVerificationCSVavecFichierAnalyse.setVisible(false);
btnVerificationCSVavecFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXML.png")));
btnVerificationCSVavecFichierAnalyse.setHideActionText(true);
toolBar.add(btnVerificationCSVavecFichierAnalyse);
// // Pour l'instant je cache ce bouton car il n'est pas utile.
// JButton btnVerificationCSVavecFichierAnalyse = toolBar.add( actVerifCSV );
// btnVerificationCSVavecFichierAnalyse.setVisible(false);
// btnVerificationCSVavecFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXML.png")));
// btnVerificationCSVavecFichierAnalyse.setHideActionText(true);
// toolBar.add(btnVerificationCSVavecFichierAnalyse);
JButton btnFichierCSV_delete = toolBar.add(actDeleteListeEtudiantCSV);
btnFichierCSV_delete.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_delete.png")));
btnFichierCSV_delete.setHideActionText(true);
// JButton btnFichierCSV_delete = toolBar.add(actDeleteListeEtudiantCSV);
// btnFichierCSV_delete.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_delete.png")));
// btnFichierCSV_delete.setHideActionText(true);
JButton btnInfoListeEtudiant = toolBar.add(actAfficheListeEtudiant);
@ -676,17 +688,13 @@ public class evaluate extends JFrame {
toolBar.add(btnInfoListeEtudiant);
JButton btnFichierCSV_modifier = toolBar.add(actModificationListeEtudiantCSV);
btnFichierCSV_modifier.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modif.png")));
btnFichierCSV_modifier.setHideActionText(true);
// JButton btnFichierCSV_modifier = toolBar.add(actModificationListeEtudiantCSV);
// btnFichierCSV_modifier.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modif.png")));
// btnFichierCSV_modifier.setHideActionText(true);
toolBar.addSeparator();
JButton btnSelectFolder = toolBar.add(actSelectFolder);
btnSelectFolder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnSelectFolder.setIcon(new ImageIcon(evaluate.class.getResource("/resources/open.png")));
btnSelectFolder.setHideActionText(true);
toolBar.add(btnSelectFolder);
@ -736,8 +744,6 @@ public class evaluate extends JFrame {
chckbxnoFeedback.setEnabled(false);
chckbxNoNote.setEnabled(false);
chckCSVNotes.setEnabled(false);
// chckbxNewLogo.setEnabled(false);
// chckbxNoLogo.setEnabled(false);
chckbxVerif.setEnabled(false);
chckbxNoDetail.setEnabled(false);
chckPasDeProgression.setEnabled(false);
@ -746,7 +752,6 @@ public class evaluate extends JFrame {
chckbxZipfeedback.setSelected(commandes.zipfeedback);
chckbxnoFeedback.setSelected(commandes.sansFeeback);
chckCSVNotes.setSelected(commandes.ecritNoteCSV);
// chckbxNewLogo.setSelected(commandes.newLogo);
chckbxNoNote.setSelected(commandes.noNote);
chckbxVerif.setSelected(commandes.verifHisto2);
chckbxNoDetail.setSelected(commandes.noDetail);
@ -760,19 +765,18 @@ public class evaluate extends JFrame {
chckbxNoDetail.setEnabled(true);
chckPasDeProgression.setEnabled(true);
if(commandes.fourniCSV) {
if(commandes.nodeCSV!=null) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) {
commandes.nodeCSV.getAttributs().put("nameListStudent","?");
commandes.nodeCSV.getAttributs().put("year", "?");
lblListe.setText("<html><b>Liste ???</b></html>");
}else {
lblListe.setText("<html><b>"+commandes.nodeCSV.getAttributs().get("nameListStudent")+"</b></html>");
}
lblChargementFichierCSV.setBackground(new Color(40,180,40));
lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent"));
lblChargementFichierCSV.setOpaque(true);
}else {
lblChargementFichierCSV.setOpaque(false);
lblListe.setText("<html><b>Liste ???</b></html>");
}
txtpnmessages.afficheChargementFichierAnalyse();
}
@ -931,78 +935,78 @@ public class evaluate extends JFrame {
/**
*
*/
private AbstractAction actVerifCSV = new AbstractAction() {
private static final long serialVersionUID = 1L;
{
putValue(Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXML.png")));
putValue( Action.NAME, "Vérification des champs du CSV" );
putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXMLmini.png")) );
putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U );
putValue( Action.SHORT_DESCRIPTION, "Vérification des champs du CSV (CTRL+B)" );
putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_DOWN_MASK) );
}
@Override
public void actionPerformed( ActionEvent e ) {
if(commandes.fichierAnalyseValide) {
if(commandes.fourniCSV) {
node settingCSV = commandes.sujet.retourneFirstEnfantsByName("import_moodle");
if(settingCSV.isHasAttributs()) {
String email ="inconnu";
String name = "inconnu";
String firstname = "inconnu";
String id = "inconnu";
txtpnmessages.setContentType("text/html");
boolean avertissement = false;
if(settingCSV.getAttributs().get("email")!=null) {
email = settingCSV.getAttributs().get("email");
}
if(settingCSV.getAttributs().get("name")!=null) {
name = settingCSV.getAttributs().get("name");
}
if(settingCSV.getAttributs().get("firstname")!=null) {
firstname = settingCSV.getAttributs().get("firstname");
}
if(settingCSV.getAttributs().get("id")!=null) {
id = settingCSV.getAttributs().get("id");
}
if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(firstname)==null) {
txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + firstname + " dans le fichier CSV. ***</h1></html>");
avertissement=true;
}
if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(name)==null) {
txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + name + " dans le fichier CSV. ***</h1></html>");
avertissement=true;
}
if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(id)==null) {
txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + id + " dans le fichier CSV. ***</h1></html>");
avertissement=true;
}
if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(email)==null) {
txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + email + " dans le fichier CSV. ***</h1></html>");
avertissement=true;
}
if(!avertissement) {
txtpnmessages.setText("<html><h1>*** Le fichier CSV contenant la liste des étudiants peut être utilisé avec les paramètres du fichier d'analyse ***</h1></html>");
}
}else {
txtpnmessages.setText("<html><h1>*** Le fichier CSV contenant la liste des étudiants est vide ***</h1></html>");
}
}else {
txtpnmessages.setText("<html><h1>*** Veuillez charger un fichier CSV contenant la liste des étudiants ***</h1></html>");
new msgBox("Le fichier CSV contenant la liste des étudiants n'est pas chargé.",true,false,"Avertissement");
}
}else {
txtpnmessages.setText("<html><h1>*** Veuillez charger une évaluation ***</h1></html>");
new msgBox("Le fichier d'analyse n'est pas valide.",true,false,"Avertissement");
}
}
};
// /**
// *
// */
// private AbstractAction actVerifCSV = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
// {
// putValue(Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXML.png")));
// putValue( Action.NAME, "Vérification des champs du CSV" );
// putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfoXMLmini.png")) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U );
// putValue( Action.SHORT_DESCRIPTION, "Vérification des champs du CSV (CTRL+B)" );
// putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_DOWN_MASK) );
// }
// @Override
// public void actionPerformed( ActionEvent e ) {
//
// if(commandes.fichierAnalyseValide) {
// if(commandes.fourniCSV) {
// node settingCSV = commandes.sujet.retourneFirstEnfantsByName("import_moodle");
// if(settingCSV.isHasAttributs()) {
// String email ="inconnu";
// String name = "inconnu";
// String firstname = "inconnu";
// String id = "inconnu";
// txtpnmessages.setContentType("text/html");
// boolean avertissement = false;
// if(settingCSV.getAttributs().get("email")!=null) {
// email = settingCSV.getAttributs().get("email");
// }
// if(settingCSV.getAttributs().get("name")!=null) {
// name = settingCSV.getAttributs().get("name");
// }
// if(settingCSV.getAttributs().get("firstname")!=null) {
// firstname = settingCSV.getAttributs().get("firstname");
// }
// if(settingCSV.getAttributs().get("id")!=null) {
// id = settingCSV.getAttributs().get("id");
// }
// if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(firstname)==null) {
// txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + firstname + " dans le fichier CSV. ***</h1></html>");
// avertissement=true;
// }
// if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(name)==null) {
// txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + name + " dans le fichier CSV. ***</h1></html>");
// avertissement=true;
// }
// if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(id)==null) {
// txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + id + " dans le fichier CSV. ***</h1></html>");
// avertissement=true;
// }
// if(commandes.nodeCSV.getNodes().get(0).getAttributs().get(email)==null) {
// txtpnmessages.setText("<html><h1>*** AVERTISSEMENT - Il n'y a pas le champ " + email + " dans le fichier CSV. ***</h1></html>");
// avertissement=true;
// }
// if(!avertissement) {
// txtpnmessages.setText("<html><h1>*** Le fichier CSV contenant la liste des étudiants peut être utilisé avec les paramètres du fichier d'analyse ***</h1></html>");
// }
// }else {
// txtpnmessages.setText("<html><h1>*** Le fichier CSV contenant la liste des étudiants est vide ***</h1></html>");
// }
// }else {
// txtpnmessages.setText("<html><h1>*** Veuillez charger un fichier CSV contenant la liste des étudiants ***</h1></html>");
// new msgBox("Le fichier CSV contenant la liste des étudiants n'est pas chargé.",true,false,"Avertissement");
// }
// }else {
// txtpnmessages.setText("<html><h1>*** Veuillez charger une évaluation ***</h1></html>");
// new msgBox("Le fichier d'analyse n'est pas valide.",true,false,"Avertissement");
// }
// }
// };
/**
* Information sur le fichier d'analyse.</br>
@ -1112,152 +1116,152 @@ public class evaluate extends JFrame {
};
/**
* Charge la liste des étudiants à partir d'un fichier CSV<br>
* Et le converti sous la forme d'un node (pour fichier XML).
*/
private AbstractAction actChargeListeEtudiantCSV = new AbstractAction() {
private static final long serialVersionUID = 1L;
{
putValue( Action.NAME, "Ajoute une liste ou des étudiants à une liste" );
putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVmini.png")) );
putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png")) );
putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
putValue( Action.SHORT_DESCRIPTION, "Ajoute une liste ou des étudiants à une liste (CTRL+L)" );
putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK) );
}
@Override public void actionPerformed( ActionEvent e ) {
int nbrStudent = 0;
if(commandes.nodeCSV==null) {
commandes.nodeCSV = new node("fileCSV");
nbrStudent=0;
}else {
if(commandes.nodeCSV.getNomElt()==null) commandes.nodeCSV.setNomElt("fileCSV");
if(commandes.nodeCSV.getNomElt().isBlank()) commandes.nodeCSV.setNomElt("fileCSV");
nbrStudent = commandes.nodeCSV.getNbrEnfants();
}
// Chargement du fichier CSV
String nameListStudent = CustomInputDialogListeEtudiant.showCustominputDialog();
if(nameListStudent.equals("Code_Annule")) return;
if(commandes.nodeCSV.getNbrEnfants()==nbrStudent) {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText("<html><h1>*** Aucun nouveau étudiant a été ajouté à la liste "+ nameListStudent +"***</h1>"
+ "<p>Le nombre d'étudiant dans la liste est de "+ String.valueOf(nbrStudent) +"</p></html>");
}else {
if(commandes.fourniCSV) {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText(baliseStyle.balise() + meptl.afficheNodeCSV().toString());
System.out.println( "Affiche la liste des étudiants déjà en mémoire." );
}else {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText("<html><h1>*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants. ***</h1></html>");
}
}
System.out.println( "Charge la liste des étudiants." );
if(commandes.fourniCSV) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) {
commandes.nodeCSV.getAttributs().put("nameListStudent","?");
commandes.nodeCSV.getAttributs().put("year", "?");
}
lblChargementFichierCSV.setBackground(new Color(40,180,40));
lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent"));
lblChargementFichierCSV.setOpaque(true);
}else {
lblChargementFichierCSV.setOpaque(false);
lblChargementFichierCSV.setText("Pas de liste des étudiants");
}
}
};
// /**
// * Charge la liste des étudiants à partir d'un fichier CSV<br>
// * Et le converti sous la forme d'un node (pour fichier XML).
// */
// private AbstractAction actChargeListeEtudiantCSV = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Ajoute une liste ou des étudiants à une liste" );
// putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVmini.png")) );
// putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png")) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
// putValue( Action.SHORT_DESCRIPTION, "Ajoute une liste ou des étudiants à une liste (CTRL+L)" );
// putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK) );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
//
// int nbrStudent = 0;
// if(commandes.nodeCSV==null) {
// commandes.nodeCSV = new node("fileCSV");
// nbrStudent=0;
// }else {
// if(commandes.nodeCSV.getNomElt()==null) commandes.nodeCSV.setNomElt("fileCSV");
// if(commandes.nodeCSV.getNomElt().isBlank()) commandes.nodeCSV.setNomElt("fileCSV");
// nbrStudent = commandes.nodeCSV.getNbrEnfants();
// }
//
// // Chargement du fichier CSV
// String nameListStudent = CustomInputDialogListeEtudiant.showCustominputDialog();
//
// if(nameListStudent.equals("Code_Annule")) return;
//
// if(commandes.nodeCSV.getNbrEnfants()==nbrStudent) {
// txtpnmessages.setContentType("text/html");
// txtpnmessages.setText("<html><h1>*** Aucun nouveau étudiant a été ajouté à la liste "+ nameListStudent +"***</h1>"
// + "<p>Le nombre d'étudiant dans la liste est de "+ String.valueOf(nbrStudent) +"</p></html>");
// }else {
// if(commandes.fourniCSV) {
// txtpnmessages.setContentType("text/html");
// txtpnmessages.setText(baliseStyle.balise() + meptl.afficheNodeCSV().toString());
// System.out.println( "Affiche la liste des étudiants déjà en mémoire." );
// }else {
// txtpnmessages.setContentType("text/html");
// txtpnmessages.setText("<html><h1>*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants. ***</h1></html>");
// }
// }
// System.out.println( "Charge la liste des étudiants." );
//
//
// if(commandes.fourniCSV) {
// if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) {
// commandes.nodeCSV.getAttributs().put("nameListStudent","?");
// commandes.nodeCSV.getAttributs().put("year", "?");
// }
// lblListe.setBackground(new Color(40,180,40));
// lblListe.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent"));
// lblListe.setOpaque(true);
// }else {
// lblListe.setOpaque(false);
// lblListe.setText("Pas de liste des étudiants");
// }
// }
// };
/**
* Supprime la liste des étudiants sous la forme d'un fichier XML.
*/
private AbstractAction actDeleteListeEtudiantCSV = new AbstractAction() {
private static final long serialVersionUID = 1L;
{
putValue( Action.NAME, "Supprime la liste des étudiants" );
putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_deletemini.png")) );
putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_delete.png")) );
putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
putValue( Action.SHORT_DESCRIPTION, "Supprime la liste des étudiants" );
}
@Override public void actionPerformed( ActionEvent e ) {
if(JOptionPane.showConfirmDialog(null,"Voulez-vous supprimer la liste des étudiant ?", "Supprimer", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) {
commandes.nodeCSV = meptl.supprimeFichierCSV();
commandes.fourniCSV=false;
txtpnmessages.setContentType("text/html");
txtpnmessages.setText("<html><h1>***Suppression de la liste des étudiants ***</h1></html>");
System.out.println( "Suppression de la liste des étudiants." );
lblChargementFichierCSV.setOpaque(false);
lblChargementFichierCSV.setText("Pas de liste des étudiants");
}
}
};
/**
* Supprime la liste des étudiants sous la forme d'un fichier XML.
*/
private AbstractAction actModificationListeEtudiantCSV = new AbstractAction() {
private static final long serialVersionUID = 1L;
{
putValue( Action.NAME, "Modification de la liste des étudiants" );
putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modifmini.png")) );
putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modif.png")) );
putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
putValue( Action.SHORT_DESCRIPTION, "Modification de la liste des étudiants" );
}
@Override public void actionPerformed( ActionEvent e ) {
txtpnmessages.setContentType("text/html");
if(commandes.fourniCSV) {
node nodImportCSV = commandes.sujet.retourneFirstEnfantsByName("import_moodle");
String name = nodImportCSV.getAttributs().get("name");
String email = nodImportCSV.getAttributs().get("email");
String firstname = nodImportCSV.getAttributs().get("firstname");
String id = nodImportCSV.getAttributs().get("id");
String numStudent = JOptionPane.showInputDialog("<html><p>Quel est le numéro de l'étudiant ?</p></html>");
node nodeStudent = commandes.nodeCSV.retourneFirstNodeByNameAndAttributValueExactStrict("student", id, numStudent);
if(nodeStudent!=null) {
txtpnmessages.setText("<html><h1>Etudiant trouvé</h1><hr><p>Nom : "+ nodeStudent.getAttributs().get(name) +"</p>"
+ "<p>Prenom : "+nodeStudent.getAttributs().get(firstname)+"</p>"
+ "<p>Email : " + nodeStudent.getAttributs().get(email) +"</p>"
+ "<p>Numéro étudiant : "+ nodeStudent.getAttributs().get(id) +"</p></html>");
new modifStudent(nodeStudent, nodImportCSV).setVisible(true);
System.out.println( "etudiant trouvé." );
}else {
txtpnmessages.setText("<html><h1>*** L'étudiant n'a pas été trouvé. ***</html>");
}
}else {
txtpnmessages.setText("<html><h1>*** Veuillez charger une liste d'étudiant à partir d'un fichier au format CSV. ***</html>");
}
}
};
// /**
// * Supprime la liste des étudiants sous la forme d'un fichier XML.
// */
// private AbstractAction actDeleteListeEtudiantCSV = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Supprime la liste des étudiants" );
// putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_deletemini.png")) );
// putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV_delete.png")) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
// putValue( Action.SHORT_DESCRIPTION, "Supprime la liste des étudiants" );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
//
// if(JOptionPane.showConfirmDialog(null,"Voulez-vous supprimer la liste des étudiant ?", "Supprimer", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) {
// commandes.nodeCSV = meptl.supprimeFichierCSV();
// commandes.fourniCSV=false;
// txtpnmessages.setContentType("text/html");
// txtpnmessages.setText("<html><h1>***Suppression de la liste des étudiants ***</h1></html>");
// System.out.println( "Suppression de la liste des étudiants." );
// lblListe.setOpaque(false);
// lblListe.setText("Pas de liste des étudiants");
// }
//
// }
// };
// /**
// * Supprime la liste des étudiants sous la forme d'un fichier XML.
// */
// private AbstractAction actModificationListeEtudiantCSV = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Modification de la liste des étudiants" );
// putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modifmini.png")) );
// putValue( Action.LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichier_csv_studen_modif.png")) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L );
// putValue( Action.SHORT_DESCRIPTION, "Modification de la liste des étudiants" );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
//
// txtpnmessages.setContentType("text/html");
// if(commandes.fourniCSV) {
// node nodImportCSV = commandes.sujet.retourneFirstEnfantsByName("import_moodle");
// String name = nodImportCSV.getAttributs().get("name");
// String email = nodImportCSV.getAttributs().get("email");
// String firstname = nodImportCSV.getAttributs().get("firstname");
// String id = nodImportCSV.getAttributs().get("id");
//
// String numStudent = JOptionPane.showInputDialog("<html><p>Quel est le numéro de l'étudiant ?</p></html>");
// node nodeStudent = commandes.nodeCSV.retourneFirstNodeByNameAndAttributValueExactStrict("student", id, numStudent);
//
// if(nodeStudent!=null) {
// txtpnmessages.setText("<html><h1>Etudiant trouvé</h1><hr><p>Nom : "+ nodeStudent.getAttributs().get(name) +"</p>"
// + "<p>Prenom : "+nodeStudent.getAttributs().get(firstname)+"</p>"
// + "<p>Email : " + nodeStudent.getAttributs().get(email) +"</p>"
// + "<p>Numéro étudiant : "+ nodeStudent.getAttributs().get(id) +"</p></html>");
//
// new modifStudent(nodeStudent, nodImportCSV).setVisible(true);
//
// System.out.println( "etudiant trouvé." );
// }else {
// txtpnmessages.setText("<html><h1>*** L'étudiant n'a pas été trouvé. ***</html>");
// }
// }else {
// txtpnmessages.setText("<html><h1>*** Veuillez charger une liste d'étudiant à partir d'un fichier au format CSV. ***</html>");
// }
// }
//
// };
/**
@ -1277,13 +1281,17 @@ public class evaluate extends JFrame {
}
@Override public void actionPerformed( ActionEvent e ) {
if(commandes.fourniCSV) {
if(commandes.nodeCSV!=null) {
if(commandes.nodeCSV.getAttributs().get("nameListStudent")!=null) {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText(baliseStyle.balise() + meptl.afficheNodeCSV().toString());
System.out.println( "Affiche la liste des étudiants déjà en mémoire." );
}else {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText("<html><h1>*** Veuillez sélectionner une liste d'étudiants dans la base. ***</h1></html>");
}
}else {
txtpnmessages.setContentType("text/html");
txtpnmessages.setText("<html><h1>*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants. ***</h1></html>");
txtpnmessages.setText("<html><h1>*** Veuillez sélectionner une liste d'étudiants dans la base. ***</h1></html>");
}
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1016 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB