From ae8c3575cebce3e2bb94c1f7ce71de1706354389 Mon Sep 17 00:00:00 2001 From: Sittha Darapisut Date: Thu, 15 Aug 2024 11:20:35 +0700 Subject: [PATCH] v1.1.0 --- CHANGELOG.md | 183 +++++++++++++++++ api/src/files/UploadFile/CSV/1.csv | 259 +++++++++++++++++++++++++ api/src/route/api/ST/class/rank_GET.py | 15 +- api/src/route/api/upload/CSV_POST.py | 6 +- 4 files changed, 450 insertions(+), 13 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 api/src/files/UploadFile/CSV/1.csv diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f78e0e9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,183 @@ + +# Change Log + +## [v1.1.0] - 2024-08-15 + +### Added + +### Changed +- Count max score from published lab only. + +### Fixed +- Condition to validate groups in CSV. + + +## [v1.0.18] - 2024-08-09 + +### Added + +### Changed + - Log client ip to database. + +### Fixed + + +## [v1.0.17] - 2024-08-08 + +### Added + +### Changed + - Regrade all submitted answer if source update + +### Fixed + + +## [v1.0.16] - skipped + + +## [v1.0.15] - 2024-08-06 + +### Added + +### Changed + +### Fixed +- Time delta method. + + +## [v1.0.14] - 2024-08-06 + +### Added + +### Changed +- Api callback parameter process. + +### Fixed + + +## [v1.0.13] - 2024-08-06 + +### Added + +### Changed +- Data return when credentials is not valid. +- Decode method. + +### Fixed + + +## [v1.0.12] - skipped + + +## [v1.0.11] - 2024-08-06 + +### Added + +### Changed + +### Fixed +- Callback decode. + +## [v1.0.10] - 2024-08-06 + +### Added +- Login service. +### Changed + +### Fixed + + +## [v1.0.9] - skipped + + +## [v1.0.8] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Logging method from flask + + +## [v1.0.7] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Log state + + +## [v1.0.6] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Add log + + +## [v1.0.5] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Bypass check state + + +## [v1.0.4] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Column 'LID' in field list is ambiguous + + +## [v1.0.3] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Submit SQL join. + + +## [v1.0.2] - 2024-08-05 + +### Added + +### Changed + +### Fixed +- Submit SQL syntax. +- Callback check state before fetch token. + + +## [v1.0.1] - 2024-08-04 + +### Added + +### Changed + +### Fixed +- Query student select all lab. +- Submit before lab publish. + + +## [v1.0.0] - 2024-08-01 + +### Added +- First release. + +### Changed + +### Fixed + \ No newline at end of file diff --git a/api/src/files/UploadFile/CSV/1.csv b/api/src/files/UploadFile/CSV/1.csv new file mode 100644 index 0000000..bc729bd --- /dev/null +++ b/api/src/files/UploadFile/CSV/1.csv @@ -0,0 +1,259 @@ +ID,Name (English),Section,Group,Score,MaxScore +6232310823,Miss Chitlada Sakulluangaram,1,-,10,50 +6431232523,Miss Pornrat Kanmanee,1,-,50,50 +6431254323,Miss Suwaphat Tantarach,1,-,13.329999923706055,50 +6431259523,Miss Itsaraporn Intraprasert,1,-,10,50 +6432202923,Miss Kusuma Phattinanmala,1,-,50,50 +6432349523,Miss Wanwisa Suebsuan,1,-,50,50 +6532330623,Mr. Sirachai Wuthapanich,1,-,10,50 +6532495523,Mr. Surachet Paeloy,1,-,0,50 +6534065723,Miss Thamonwan Teosakul,1,-,50,50 +6534125723,Miss Wimonporn Janrawong,1,-,10,50 +6534131423,Miss Savitta Songjapoh,1,-,10,50 +6631004023,Miss Kittitheera Jitjaipak,1,-,10,50 +6631042823,Miss Pitsinee Khamkaew,1,-,43.329999923706055,50 +6631302023,Mr. Kittapat Tienchai,1,-,10,50 +6631304223,Miss Kanphitcha Siriwanit,1,-,50,50 +6631305923,Miss Kuljira Sukkaew,1,-,40,50 +6631306523,Mr. Kanitakorn Bunauy,1,-,40,50 +6631307123,Miss Krongkwan Ruxsuwan,1,-,50,50 +6631308823,Miss Jantawan Chainarong,1,-,10,50 +6631309423,Miss Jiratchaya Chuon,1,-,50,50 +6631310023,Juthamat Winthachai,1,-,50,50 +6631311623,Miss Chadaporn Wongsricha,1,-,10,50 +6631312223,Mr. Chonlachat Namsak,1,-,0,50 +6631313923,Miss Chaweewan Prematun,1,-,20,50 +6631315123,Mr. Chisanupong Thongdaeng,1,-,10,50 +6631316823,Miss Thanita Boonnarong,1,-,10,50 +6631317423,Miss Thitima Saiyon,1,-,10,50 +6631318023,Mr. Naphak Jiratthathanathon,1,-,50,50 +6631320223,Miss Natnaree Wankaew,1,-,50,50 +6631321923,Mr. Natthakorn Thongpan,1,-,10,50 +6631322523,Miss Nattanicha Thongyou,1,-,50,50 +6631323123,Miss Natchaporn Saejew,1,-,50,50 +6631324823,Miss Thantara Kanlayangam,1,-,10,50 +6631326023,Tanapat Panprasurtsang,1,-,10,50 +6631327723,Miss Tanaporn Wattanachaopisut,1,-,10,50 +6631328323,Miss Thidarak Lamdee,1,-,50,50 +6631330523,Mr. Napasrapee Sirimittrakoon,1,-,10,50 +6631331123,Mr. Namo Noonoi,1,-,10,50 +6631332823,Mr. Nanthawat Lamai,1,-,20,50 +6631333423,Miss Boonyarat Wongkessada,1,-,10,50 +6631334023,Miss Benjawan Sunglon,1,-,50,50 +6631336323,Mr. Pongsakon Wisetnakhon,1,-,0,50 +6631337023,Mr. Phongsatorn Ousakulwattana,1,-,10,50 +6631338623,Miss Primsorn Srichansook,1,-,50,50 +6631339223,Miss Pruetika Chuabankor,1,-,10,50 +6631340823,Miss Pacharamon Luangruangwech,1,-,0,50 +6631341423,Miss Phitpicha Wongwattananukul,1,-,50,50 +6631342023,Mr. Peerawat Phetsuth,1,-,50,50 +6631343723,Mr. Pattaraphon Chueaprathum,1,-,0,50 +6631344323,Mr. Phanuphong Phatsakornkran,1,-,50,50 +6631345023,Miss Maneerin Saoman,1,-,10,50 +6631346623,Miss Yamonphat Chumsuk,1,-,10,50 +6631347223,Miss Wannisa Khanpra,1,-,30,50 +6631348923,Miss Warittha Soontornpitakkul,1,-,10,50 +6631351723,Mr. Siriwat Katanyatapong,1,-,40,50 +6631353023,Mr. Stefan Quint,1,-,40,50 +6631354623,Mr. Sorawit Phonkerd,1,-,50,50 +6631355223,Miss Suchawadee Rungreuangsri,1,-,30,50 +6631356923,Miss Supichaya Itsariyatecha,1,-,50,50 +6631357523,Miss Suveera Nitipong,1,-,30,50 +6631358123,Mr. Apicha Chanfong,1,-,0,50 +6631361023,Miss Araya Obkun,1,-,50,50 +6632008723,Janjao Chonchuen,1,-,50,50 +6634104623,Miss Varisara Chanprasopchai,1,-,50,50 +6432333423,Miss Panisara Hattagee,2,-,10,50 +6631051423,Mr. Puriphat Yamin,2,-,10,50 +6632201423,Miss Khodchakorn Limtrakul,2,-,10,50 +6632203723,Miss Jutharat Boonamorn,2,-,10,50 +6632204323,Mr. Jadesda Phetthai,2,-,10,50 +6632206623,Miss Chawisa Chueasakulvanich,2,-,10,50 +6632207223,Miss Chuthinan Sodthaisong,2,-,10,50 +6632208923,Miss Chutima Srimuad,2,-,10,50 +6632209523,Miss Chamada Tiangteeratam,2,-,10,50 +6632210023,Miss Thita Wongnin,2,-,10,50 +6632211723,Mr. Nonthanat Teerawathananon,2,-,0,50 +6632212323,Mr. Naphat Saipanich,2,-,10,50 +6632213023,Mr. Natdanai Sukanan,2,-,0,50 +6632215223,Miss Natthinan Pharitaworawithoon,2,-,0,50 +6632217523,Miss Thaksaporn Lertrojpanya,2,-,10,50 +6632219823,Miss Tanaphon Pinsri,2,-,0,50 +6632220323,Mr. Thanawat Warasit,2,-,0,50 +6632221023,Mr. Thanathip Limwongjaroen,2,-,33.329999923706055,50 +6632222623,Miss Napassorn Thadabusabong,2,-,10,50 +6632223223,Miss Nutthakorn Wongjariyakasem,2,-,10,50 +6632224923,Miss Thiranee Loedakharathit,2,-,10,50 +6632226123,Miss Benyapa Jantasorn,2,-,10,50 +6632228423,Miss Panchaya Koatarsa,2,-,0,50 +6632229023,Miss Ploychompoo Chomtas,2,-,10,50 +6632231223,Miss Patteera Boonprasert,2,-,10,50 +6632232923,Mr. Patis Thussanakulphan,2,-,10,50 +6632233523,Miss Pichaporn Soontornkrult,2,-,0,50 +6632234123,Miss Pimonporn Surawekin,2,-,10,50 +6632235823,Mr. Peeranat Khansri,2,-,10,50 +6632238723,Mr. Panuwat Namwongchai,2,-,10,50 +6632239323,Miss Makmontol Siriteeramongkol,2,-,10,50 +6632240923,Mr. Raweewat Keawjaroen,2,-,10,50 +6632242123,Miss Sasitorn Surapatpidit,2,-,10,50 +6632243823,Mr. Sakson Pising,2,-,10,50 +6632244423,Miss Sirada Jitpreedasakul,2,-,10,50 +6632245023,Mr. Sivakorn Somwandee,2,-,10,50 +6632246723,Miss Suphaphich Boonchit,2,-,0,50 +6632247323,Mr. Aticha Suksomwong,2,-,10,50 +6632248023,Miss Athipa Sintawachiwa,2,-,10,50 +6632249623,Miss Atthapinya Rentron,2,-,10,50 +6632250123,Miss Aracha Krasao,2,-,0,50 +6632251823,Mr. Aekkarat Khampui,2,-,10,50 +6634003923,Mr. Kamonset Boonprasong,2,-,10,50 +6634054923,Miss Thanwalai Kamonkhon,2,-,50,50 +6634060623,Miss Narathip Boonla,2,-,10,50 +6634131523,Mr. Adiluk Jaiman,2,-,10,50 +6634138023,Mr. Arnas Naengdam,2,-,10,50 +6634237423,Pettay Sangurai,2,-,10,50 +6634326623,Mr. Phuthinat Khluapteng,2,-,10,50 +6734221423,Mr. Triphech Prasomsuk,2,-,50,50 +6332374023,Mr. Surasit Kongkaew,3,-,0,50 +6531208623,Miss Chanoknan Kaeoket,3,-,0,50 +6734301023,Mr. Korntewa Phetkaew,3,-,50,50 +6734302623,Mr. Karunphop Savanachai,3,-,50,50 +6734303223,Miss Kunyarut Panpinit,3,-,40,50 +6734304923,Mr. Kankavin Kaiyarat,3,-,40,50 +6734305523,Mr. Kittitut Iemsa-Aht,3,-,50,50 +6734306123,Mr. Kitiphong Chapoo,3,-,50,50 +6734307823,Miss Jittapa Ratanawan,3,-,40,50 +6734308423,Mr. Jirattakorn Sriyoyod,3,-,50,50 +6734309023,Miss Jirapa Kiattikulkajorn,3,-,50,50 +6734310623,Miss Chanchanok Kaewkongpan,3,-,50,50 +6734311223,Mr. Chayakrit Anuraktanon,3,-,40,50 +6734312923,Mr. Chayuttrakorn Plongmai,3,-,50,50 +6734313523,Mr. Chitsanuphong Taengrom,3,-,0,50 +6734314123,Mr. Yanawit Pingna,3,-,50,50 +6734315823,Mr. Nadech Prapaithrakul,3,-,50,50 +6734316423,Miss Nutthapat Santiwatanapol,3,-,50,50 +6734317023,Mr. Thanonits Ongsomwang,3,-,50,50 +6734318723,Mr. Thanawat Kuttanan,3,-,20,50 +6734319323,Mr. Tanawich Junpoom,3,-,50,50 +6734320923,Mr. Teetouch Leelasirinuwong,3,-,50,50 +6734321523,Miss Napas Kanchanaanothai,3,-,0,50 +6734322123,Mr. Paerrin Mick Udtaisuk,3,-,50,50 +6734323823,Miss Pun Yothicar,3,-,0,50 +6734324423,Mr. Piyapum Kongsakul,3,-,50,50 +6734325023,Mr. Phonphawit Fuangphet,3,-,50,50 +6734326723,Mr. Phansa Phranthaen,3,-,50,50 +6734327323,Mr. Panthagan Gasorn,3,-,0,50 +6734328023,Miss Pimchuda Kamput,3,-,50,50 +6734329623,Mr. Peeranut Tepsukon,3,-,50,50 +6734330123,Miss Pattranit Ratchapleesing,3,-,0,50 +6734331823,Mr. Phudit Khonggrussamee,3,-,50,50 +6734332423,Mr. Sakaya Thepsan,3,-,0,50 +6734333023,Mr. Sirivit Ratanasupa,3,-,29.989999771118164,50 +6734334723,Mr. Suphakorn Puemsem,3,-,50,50 +6734335323,Mr. Suphawit Sripodok,3,-,50,50 +6734336023,Mr. Sahanut Homcham,3,-,50,50 +6734337623,Mr. Sippakorn Kuntan,3,-,0,50 +6734338223,Mr. Sirinat Peewisezkuldech,3,-,20,50 +6734339923,Miss Suthita Wangboo,3,-,30,50 +6734340423,Miss Supawadee Sittiphol,3,-,50,50 +6734341023,Miss Suraiya Limani,3,-,50,50 +6734342723,Mr. Adithep Yingyong,3,-,50,50 +6734343323,Mr. Aritat Sompradit,3,-,50,50 +6734344023,Mr. Arif Narapat,3,-,16.65999984741211,50 +6432324823,Miss Thanapron Kopattar,4,-,0,50 +6534019923,Jakkrit Tantiprapha,4,-,0,50 +6534038823,Yadaporn Jitsue,4,-,0,50 +6534127023,Supatchaya Batrpho,4,-,0,50 +6534356323,Mr. Oakharaphon Chaiyod,4,-,10,50 +6631039023,Miss Ploysai Arkkarapongchanaporn,4,-,10,50 +6631049223,Miss Pakvaran Viboonchue,4,-,0,50 +6633101523,Miss Kanphitcha Weerakulwattana,4,-,10,50 +6633103823,Mr. Kiatkawin Yinnasoot,4,-,0,50 +6633105023,Mr. Jirapat Kaewaed,4,-,10,50 +6633106723,Mr. Jirat Kietdumrongwong,4,-,10,50 +6633107323,Miss Chotima Akkarasukkul,4,-,10,50 +6633108023,Miss Yatawee Kampan,4,-,10,50 +6633109623,Miss Narudee Submanee,4,-,10,50 +6633110123,Miss Natcha Ketkaew,4,-,10,50 +6633111823,Miss Natkamon Saiviwat,4,-,10,50 +6633112423,Miss Natnicha Poolakkeaw,4,-,10,50 +6633113023,Miss Nichakamol Jariyaprachyakul,4,-,10,50 +6633115323,Mr. Tri Puranasamriddhi,4,-,10,50 +6633117623,Mr. Thacharat Promkaew,4,-,10,50 +6633118223,Mr. Thanachai Weangnon,4,-,10,50 +6633119923,Mr. Tanaphon Boonjung,4,-,10,50 +6633121023,Miss Nantharat Phetcharat,4,-,10,50 +6633122723,Pattamaporn Lin,4,-,0,50 +6633123323,Mr. Pitipat Khonthai,4,-,10,50 +6633124023,Miss Piyachat Panchu,4,-,0,50 +6633125623,Mr. Patsharameath Tanachortchaipong,4,-,10,50 +6633126223,Miss Praewa Konpudsa,4,-,10,50 +6633127923,Mr. Photikorn Rungsawang,4,-,10,50 +6633128523,Miss Porrapat Liwsakul,4,-,10,50 +6633129123,Miss Paninee Suttiwiwat,4,-,0,50 +6633130723,Miss Phusita Baiphaisan,4,-,10,50 +6633131323,Miss Martina Panyayong,4,-,10,50 +6633132023,Mr. Maytus Namwongsa,4,-,10,50 +6633133623,Mr. Rermrath Pipatphanuvidhya,4,-,10,50 +6633134223,Miss Wayakorn Uma,4,-,10,50 +6633135923,Mr. Worramat Teyton,4,-,10,50 +6633136523,Miss Wichayapa Thipmas,4,-,10,50 +6633137123,Mr. Smittipong Tangsathaporn,4,-,0,50 +6633138823,Miss Sornsicha Chalongkhwan,4,-,10,50 +6633139423,Miss Suwattana Donkhunthod,4,-,10,50 +6633140023,Miss Arunrat Tongsuk,4,-,10,50 +6332367723,Mr. Satakhun Vichai,5,-,10,50 +6534025623,Miss Chayabha Jaruathipas,5,-,0,50 +6534044523,Miss Napat Thamchutiporn,5,-,50,50 +6534053123,Miss Nichapat Suksang,5,-,10,50 +6534057723,Miss Tanapon Munggontong,5,-,30,50 +6534061123,Miss Tanatcha Chareonsook,5,-,10,50 +6534073723,Miss Narakorn Prabkhonchua,5,-,50,50 +6534086923,Miss Panpailin Jandabut,5,-,30,50 +6534354023,Miss Oraya Pornphirunroj,5,-,10,50 +6631201223,Miss Kotchamon Leangjaroan,5,-,10,50 +6631202923,Miss Kanokpit Wattanajit,5,-,10,50 +6631204123,Mr. Kasidit Anuwongworrawet,5,-,0,50 +6631205823,Miss Kanchaporn Chillka,5,-,0,50 +6631209323,Miss Jidatan Silarak,5,-,0,50 +6631210923,Miss Jittra Praphasatjawet,5,-,0,50 +6631212123,Miss Jiraporn Jirapradubwong,5,-,10,50 +6631215023,Miss Chatchadaporn Somkaun,5,-,10,50 +6631216723,Mr. Thitipong Larndate,5,-,10,50 +6631217323,Mr. Thitiwut Techa-Amnuaywit,5,-,10,50 +6631218023,Miss Napussapon Kerdkor,5,-,10,50 +6631220123,Miss Nattapicha Pongphrom,5,-,10,50 +6631221823,Miss Natchaya Pukkeaw,5,-,10,50 +6631222423,Mr. Tananut Wongpraparat,5,-,0,50 +6631225323,Mr. Thanawat Maneenopphon,5,-,10,50 +6631226023,Mr. Thammanoon Sornakom,5,-,10,50 +6631227623,Mr. Theerapun Luangleekpai,5,-,0,50 +6631228223,Miss Napawan Thuntirasopanakul,5,-,10,50 +6631230423,Miss Buachompoo Prataknukul,5,-,10,50 +6631231023,Miss Panitinan Chaipuwanart,5,-,10,50 +6631235623,Mr. Photthakorn Benjarat,5,-,0,50 +6631237923,Miss Pitsiya Meepatsom,5,-,10,50 +6631238523,Miss Pataraporn Sudyoadsuk,5,-,20,50 +6631240723,Mr. Panukorn Wangsai,5,-,0,50 +6631241323,Mr. Phuwanan Apijattawaporn,5,-,10,50 +6631242023,Miss Manchunan Yeesin,5,-,10,50 +6631244223,Mr. Rachanon A-Maruek,5,-,10,50 +6631245923,Miss Wannapha Jaiman,5,-,0,50 +6631246523,Miss Waratip Artrit,5,-,0,50 +6631247123,Mr. Wichanat Khongkliang,5,-,0,50 +6631249423,Mr. Suppakarn Plongkerd,5,-,0,50 +6631250023,Mr. Supachok Laksitanon,5,-,10,50 +6631253923,Mr. Surapat Sariganonts,5,-,20,50 +6631254523,Miss Anatcha Visadsil,5,-,0,50 +6631255123,Mr. Apiwit Tiewtakul,5,-,10,50 +6631256823,Mr. Ittipat Penkun,5,-,10,50 +6434419123,Chutikarn Kamsem,6,-,0,50 +6434454023,Phasit Udomwiriyasaree,6,-,0,50 +6434460823,-,6,-,0,50 +6434461423,Phichaphop Raqsaboon,6,-,0,50 +6434467223,Phaiboon Jaradnaparatana,6,-,0,50 +6534462123,Wetphisit Nantasanee,6,-,0,50 +6534463823,Sarutaporn Rattanawongsaroj,6,-,0,50 +6534467323,Supakit Sroynam,6,-,10,50 +6534476023,Surawee Pattarawuttinan,6,-,0,50 +6634402623,Kornrawee Kochtat,6,-,0,50 +6670063323,Thanapat Sinsrangboon,6,-,10,50 \ No newline at end of file diff --git a/api/src/route/api/ST/class/rank_GET.py b/api/src/route/api/ST/class/rank_GET.py index f9f17a7..358361e 100644 --- a/api/src/route/api/ST/class/rank_GET.py +++ b/api/src/route/api/ST/class/rank_GET.py @@ -36,23 +36,16 @@ def main(): # Calculate total max score cur.execute(""" SELECT - QST.MaxScore, - L.CID, - L.GID + SUM(QST.MaxScore) FROM question QST JOIN lab L ON QST.LID = L.LID WHERE - QST.CSYID = %s - """, (CSYID,)) + QST.CSYID = %s AND (JSON_CONTAINS(L.CID, CAST(%s AS JSON), '$') OR JSON_CONTAINS(L.GID, CAST(%s AS JSON), '$')) AND CONVERT_TZ(NOW(), '+00:00', '+07:00') >= L.Publish + """, (CSYID, student_CID, student_GID,)) MaxScoreResult = cur.fetchall() - total_max_score = 0 - for MaxScore, CID_json, GID_json in MaxScoreResult: - CID_list = json.loads(CID_json) if CID_json else [] - GID_list = json.loads(GID_json) if GID_json else [] - if student_CID in CID_list or (student_GID and student_GID in GID_list): - total_max_score += int(MaxScore) + total_max_score = int(MaxScoreResult[0][0]) # Calculate student's score cur.execute(""" diff --git a/api/src/route/api/upload/CSV_POST.py b/api/src/route/api/upload/CSV_POST.py index a159046..3de371d 100644 --- a/api/src/route/api/upload/CSV_POST.py +++ b/api/src/route/api/upload/CSV_POST.py @@ -57,8 +57,10 @@ def main(): if 'Group' in csv_reader.fieldnames: # Validate groups in CSV - groups = {row['Group'] for row in csv_reader} - if ('' in groups or '-' in groups) and not ('' in groups and '-' in groups): + groups = {row['Group'] for row in csv_reader} + print(groups) + + if ('' in groups or '-' in groups) and ('' in groups and '-' in groups): return jsonify({'success': False, 'msg': 'Invalid group data\nPlease ensure that there are no empty rows in your CSV file.'}) # Reset csv reader