ผลต่างระหว่างรุ่นของ "Tqf/employmentstats"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 9 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 31: | แถว 31: | ||
* ให้เพิ่มฟิลด์ให้ครบตามฟอร์ม | * ให้เพิ่มฟิลด์ให้ครบตามฟอร์ม | ||
* ให้มีฟิลด์ imported_curriculum_title (ตรงนี้จะเป็นชื่อที่ไม่ตรง แต่ตรงตามที่เรา import มา) | * ให้มีฟิลด์ imported_curriculum_title (ตรงนี้จะเป็นชื่อที่ไม่ตรง แต่ตรงตามที่เรา import มา) | ||
+ | * เพิ่มพิลด์ year ระบุปีของข้อมูลด้วย | ||
* เพิ่มฟิลด์ annualcurriculumresult_id (ตรงนี้ ถ้าเค้าเชื่อมข้อมูลแล้ว เราจะปรับให้ตรงกับ id ของตัวมคอ.7) | * เพิ่มฟิลด์ annualcurriculumresult_id (ตรงนี้ ถ้าเค้าเชื่อมข้อมูลแล้ว เราจะปรับให้ตรงกับ id ของตัวมคอ.7) | ||
2. สร้างโมเดล Model_ImportedCurriculumEmploymentStat (ล้อกับ Model_CurriculumEmploymentStat) | 2. สร้างโมเดล Model_ImportedCurriculumEmploymentStat (ล้อกับ Model_CurriculumEmploymentStat) | ||
− | 3 | + | == การนำเข้าข้อมูล == |
+ | |||
+ | เขียนสคริปต์นำเข้าข้อมูลโดยดูตัวอย่างจากบรรดา application/classes/controller/cli/import* เช่น importtqf7curriculuminstructors.php | ||
+ | |||
+ | พวกนี้จะเป็น controller ที่คุณจะเรียกผ่าน CLI โดยจะเรียกจาก tqf directory เลย ประมาณ | ||
+ | |||
+ | $ php index.php --uri=cli/importtqf7curriculuminstructors --file=data.csv --year=2557 | ||
+ | |||
+ | เจ้า --file และ --year เนี่ยะ จะเป็น options ที่คุณจะอ่านได้โดยสั่งประมาณ | ||
+ | |||
+ | $options = CLI::options('file','year'); | ||
+ | if((!isset($options['file'])) || (!isset($options['year']))) { | ||
+ | exit(1); | ||
+ | } | ||
+ | $filename = $options["file"]; | ||
+ | |||
+ | ที่เหลือคุณลองดูตัวอย่างในโค้ดเอานะครับ | ||
+ | |||
+ | ทีนี้ ข้อมูลคุณมาจาก excel 3 ไฟล์ คุณอาจจะฟิตเขียน script 3 อันก็ได้ หรือจะเอามารวมด้วยมือก่อน แล้วค่อย export มาเป็น csv ไฟล์เดียวก็ได้นะครับ (ผมนิยมทำแบบนี้) | ||
+ | |||
+ | == ปรับโมเดล CurriculumEmploymentStat เดิม == | ||
+ | |||
+ | อย่างที่ผมบอกไว้ ปกติผมจะมีข้อมูลจริงที่ลิงก์กับ curriculum result อีกอัน (จะไม่ขึ้นด้วย imported) แต่ของเดิมมันฟิลด์ไม่ครบ จะลบก็ไม่ได้ เพราะว่ามีข้อมูลของปีก่อน ๆ อยู่ ผมเลยกะว่าจะเติมฟิลด์ในนี้ | ||
+ | |||
+ | คุณก็อาจจะไปเติมใน phpmyadmin แล้วไปสร้างเพิ่มใน migration | ||
+ | |||
+ | ส่วนของโมเดลนี้ ปกติที่ผมทำคือพอโหลดหน้าข้อมูล employmentstats ครั้งแรก ผมก็จะ import ข้อมูลมาจาก ImportedCurriculumEmploymentStat มาใส่ใน model ของจริงอันนี้ (เดี๋ยวผมเอาตัวอย่างมาใส่ให้) | ||
+ | |||
+ | == หน้า employmentstats == | ||
+ | |||
+ | : ''เดี๋ยวมาเขียนเพิ่มครับ ผมว่าเท่าที่เขียนมาคุณก็น่าจะต้องสู้กับมันสักพักล่ะ'' | ||
+ | |||
+ | === เพื่อ test: ตั้งค่า annualcurriculumresult_id เอง === | ||
+ | |||
+ | === สร้าง controller / ใช้ TQFFastForm === |
รุ่นแก้ไขปัจจุบันเมื่อ 03:34, 5 มิถุนายน 2558
เนื้อหา
รายละเอียดข้อมูล
แหล่งข้อมูล: จากกองแผนงาน http://www.planning.ku.ac.th/planning/downloads/work/work_index.htm (น่าจะดูของเป็นสรุปผลครั้งที่ 2 นะครับ)
1. ข้อมูลมันจะมีอยู่ 3 ส่วน น่าจะเอามาใส่ฟอร์มข้างต้นได้หมด ยกเว้น field จำนวนผู้สำเร็จการศึกษาที่มีงานทำก่อนเข้าศึกษา ซึ่งเราต้องไปคุยกับเค้าอีกทีว่าจะเอาไง
2. ปัญหาคือในข้อมูลระบุสาขามาอาจจะไม่ตรงกับในหลักสูตร เช่น "วิศวกรรมศาสตรบัณฑิต (วิศวกรรมโยธา-ทรัพยากรน้ำ)" ชื่อในระบบเราเป็น "วิศวกรรมศาสตรบัณฑิต สาขาวิศวกรรมโยธา-ทรัพยากรน้ำ" ซึ่งตรงนี้ช่างมันก่อน เราค่อยไปทำหน้าให้เค้าลิงก์ข้อมูลมา (แถมมีภาคปกติภาคพิเศษแยกกันอีก)
สิ่งที่คุณน่าจะทำคร่าว ๆ
1. สร้างตาราง importedcurriculumemploymentstats (อย่าลืม migration) และโมเดล Model_ImportedCurriculumEmploymentStat
2. เขียน script นำเข้าข้อมูล
3. manually เชื่อมโยงของข้อมูลที่ import มา กับข้อมูลหลักสูตรที่ต้องการกรอก (สักวิธี เดี๋ยวผมเขียนอธิบายเมลถัดไป)
4. ทำหน้า employmentstats ที่แสดงข้อมูลดังกล่าว และมีช่องหนึ่งช่องให้เขียนอธิบาย
ตารางและโมเดล
โดยมากเวลานำเข้าข้อมูลจากภายนอก ผมจะไม่เก็บลงข้อมูลจริงโดยตรง แต่จะสร้างตารางและโมเดลที่ prefix ว่า imported ไว้ก่อน กันบึ้ม
สำหรับข้อมูลการได้งานทำนั้น จริง ๆ มันมีโมเดลอยู่แล้ว ชื่อ Model_CurriculumEmploymentStat (curriculumemploymentstat) แต่ฟิลด์มันจะไม่ครบ (เพราะว่ามันตามฟอร์มเดิม)
ผมเสนอให้คุณดำเนินการดังนี้
1. สร้างตาราง importedcurriculumemploymentstats (ปกติผมจะสร้างใน phpmyadmin สร้าง key อะไรให้เรียบร้อย แล้ว export มาใส่ migration (อยู่ที่ application/migration) อย่าลืม postfix มันด้วย _UP นะ) ตารางนี้จะล้อกับ curriculumemploymentstats
- convention ของตาราง ต้องมี field id เป็น primary key เป็น int แล้วก็ auto increment
- ให้เพิ่มฟิลด์ให้ครบตามฟอร์ม
- ให้มีฟิลด์ imported_curriculum_title (ตรงนี้จะเป็นชื่อที่ไม่ตรง แต่ตรงตามที่เรา import มา)
- เพิ่มพิลด์ year ระบุปีของข้อมูลด้วย
- เพิ่มฟิลด์ annualcurriculumresult_id (ตรงนี้ ถ้าเค้าเชื่อมข้อมูลแล้ว เราจะปรับให้ตรงกับ id ของตัวมคอ.7)
2. สร้างโมเดล Model_ImportedCurriculumEmploymentStat (ล้อกับ Model_CurriculumEmploymentStat)
การนำเข้าข้อมูล
เขียนสคริปต์นำเข้าข้อมูลโดยดูตัวอย่างจากบรรดา application/classes/controller/cli/import* เช่น importtqf7curriculuminstructors.php
พวกนี้จะเป็น controller ที่คุณจะเรียกผ่าน CLI โดยจะเรียกจาก tqf directory เลย ประมาณ
$ php index.php --uri=cli/importtqf7curriculuminstructors --file=data.csv --year=2557
เจ้า --file และ --year เนี่ยะ จะเป็น options ที่คุณจะอ่านได้โดยสั่งประมาณ
$options = CLI::options('file','year'); if((!isset($options['file'])) || (!isset($options['year']))) { exit(1); } $filename = $options["file"];
ที่เหลือคุณลองดูตัวอย่างในโค้ดเอานะครับ
ทีนี้ ข้อมูลคุณมาจาก excel 3 ไฟล์ คุณอาจจะฟิตเขียน script 3 อันก็ได้ หรือจะเอามารวมด้วยมือก่อน แล้วค่อย export มาเป็น csv ไฟล์เดียวก็ได้นะครับ (ผมนิยมทำแบบนี้)
ปรับโมเดล CurriculumEmploymentStat เดิม
อย่างที่ผมบอกไว้ ปกติผมจะมีข้อมูลจริงที่ลิงก์กับ curriculum result อีกอัน (จะไม่ขึ้นด้วย imported) แต่ของเดิมมันฟิลด์ไม่ครบ จะลบก็ไม่ได้ เพราะว่ามีข้อมูลของปีก่อน ๆ อยู่ ผมเลยกะว่าจะเติมฟิลด์ในนี้
คุณก็อาจจะไปเติมใน phpmyadmin แล้วไปสร้างเพิ่มใน migration
ส่วนของโมเดลนี้ ปกติที่ผมทำคือพอโหลดหน้าข้อมูล employmentstats ครั้งแรก ผมก็จะ import ข้อมูลมาจาก ImportedCurriculumEmploymentStat มาใส่ใน model ของจริงอันนี้ (เดี๋ยวผมเอาตัวอย่างมาใส่ให้)
หน้า employmentstats
- เดี๋ยวมาเขียนเพิ่มครับ ผมว่าเท่าที่เขียนมาคุณก็น่าจะต้องสู้กับมันสักพักล่ะ