พอดีช่วงนี้โปรเจคที่ทำ มีความต้องการเข้ารหัสไฟล์ PDF ที่จะออกจากระบบ Odoo
แต่วันนี้ แทนที่ผมจะมาเล่าให้ฟัง ถึงโมดูลที่ทำหน้าที่นั้น จะขอมาเล่าว่า ผมได้ให้ OCA ช่วยอย่างไร เพื่อให้ได้โมดูลนั้นมาใช้งานบ้างดีกว่าครับ

ไม่แน่ใจว่าเคยเห็นบ้างไหม เวลาที่เราได้รับไฟล์จากธนาคารอย่าง Bank Statement ส่วนตัวมาทางอีเมล์ เวลาเปิดไฟล์ PDF เพื่ออ่าน จะมีให้ใส่รหัสผ่านก่อน แบบนั้นล่ะครับ
เนื่องจากเป็นเรื่องใหม่สำหรับผม ได้เข้าไปหาที่ https://odoo-community.org/shop แล้วก็ยังไม่เจอ มีแนวโน้มว่าทาง OCA อาจยังไม่มี คงต้องเขียนขึ้นมาใหม่
สิ่งถัดไป ที่ผมทำก่อนเริ่มเขียนโค้ด คือ เขียนเข้าไปถามใน Mailing List ของ OCA ที่ “Odoo Community Association (OCA) Contributors” <contributo[email protected]> เผื่อว่าจะมีใครเคยทำ หรือมีคำแนะนำบ้าง
คนในวง OCA พร้อมช่วยเหลือกันอยู่แล้ว ขอเพียงเราศึกษามาก่อน และตั้งคำถามที่น่าสนใจเพื่อส่วนรวม แต่คราวนี้โชคดีเป็นพิเศษ ถามไปแป๊บเดียวมีคนมาตอบ พอดีว่าคุณ Eric เคยทำอยู่แล้ว เพียงแต่ยังไม่สมบูรณ์ และยังไม่ได้เอาเข้า OCA
มีมาตอบกันหลายคนครับ บางอันก็ไม่ใช่อันที่เราสนใจ เราก็ขอบคุณเขาไปครับ ดูสิ่งที่คุณ Eric ทำมาน่าจะโอเค ก็ขอโค้ดเขาเพื่อเอามาปรับปรุง ถ้าเราบอกว่า ทำเสร็จแล้ว ก็จะเปิดโค้ดเข้า OCA ทุกคนจะยินดีช่วยมาก
แล้วผมก็ได้โค้ดมาเริ่มทำงานโดยไม่ต้องเริ่มจากศูนย์ ซึ่งโค้ดที่ได้มาก็ทำงานได้ดีอยู่แล้วครับ โดยเวลาที่พิมพ์ PDF ระบบจะถามให้เราตั้งรหัสผ่าน
และ PDF ที่เปิดดูต้องใส่รหัสผ่านก่อน
สิ่งที่อยากได้เพิ่ม คือให้ระบบสร้างรหัสผ่านให้แบบอัตโนมัติเลย ผู้ใช้งานไม่ต้องใส่เอง โดยรหัสผ่านจะเป็นค่าจากตัวแปรในระบบ เช่น เลขที่เอกสาร, TAXID ของบริษัท หรือค่าใดๆก็ได้ตามต้องการ
เนื่องจากโค้ดที่ได้มาดีอยู่แล้ว การเพิ่ม option ไม่ใช่เรื่องยาก ผมใช้เวลาทำอยู่สองสามชั่วโมงก็เสร็จ โดยโค้ดที่ผมทำก็แน่นอนว่าจะเอากลับเข้า OCA เพื่อรอการรีวิวจากสมาชิกท่านอื่นๆก่อนต่อไป
ส่วน version ที่ได้มานี้สำหรับ Odoo 12 ผมเลยเอาเข้า branch 12.0 ก่อนเพื่อให้ง่าย ไม่ต้องแก้ปัญหาเกี่ยวกับ version ของ Odoo และแพลนว่าจะ upgrade เป็น 13.0, 14.0 ต่อไป
โมดูลนี้ชื่อว่า report_qweb_encrypt ตอนนี้ยังเป็น Pull Request อยู่นะครับ ท่านใดที่สนใจก็เข้ามาช่วยกันรีวิวได้ หลายหัว ดีกว่าหัวเดียว 🙂
https://github.com/OCA/reporting-engine/pull/459
แล้วพบกันใหม่ครับ