Skip to content

Instantly share code, notes, and snippets.

@arvchristos
Last active August 14, 2018 08:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arvchristos/64a4c37bc9060e27ad82fb6258ad9dbf to your computer and use it in GitHub Desktop.
Save arvchristos/64a4c37bc9060e27ad82fb6258ad9dbf to your computer and use it in GitHub Desktop.
Librecust GSOC 2018 Final Report

This gist is the final descriptive report of the work completed during Google Summer of Code 2018 (GSOC 2018) relevant to the project LibreOffice customization and creation of legal Templates

Abstract

Greek public services are a field of absolute dominance for proprietary software and legal services are no exception. One of the tools widely used by employees of this public sector is the office suite and especially the word document editor. For many years, closed source software (e.g. Microsoft Office) was the standard text editor used by the majority of sectors while open source equivalents were never considered an option, adding a huge cost for the services and a static software solution, mainly because of the lack of feedback collecting and request implementation that characterizes proprietary software. In addition to this, employees where required not only to be fluent users of such software (MS Office 2003-2007), but also acquire certifications that prove so, such as ECDL.

In the context of cost reducing, many attempts to establish open source usage in office toolset (LibreOffice) have been made, with almost all of them failing. One of the reasons why this happened is because end users where forced to use an advanced text editor, changing their workspace principles after many years of acquaintance with MS Office.

This project aims to introduce LibreOffice, and especially the Writer module, in Greek legal services employees.

Librecust, includes the following sub-tasks:

  • Development of specific menu, UI customizations and extensions(add-ons) to achieve MS Office familiar interface without undermining LO functionality.
  • Creation of extensions to automate editing and creation of Greek legal documents as an alternative to template usage in services that do not follow a standardized document format, in order to introduce LO mechanisms as a tool for Greek Public Services.
  • Documentation of LO customization and extension development as well as deployment approaches for real case scenarios (testing on Specific Court Department with multiple workstations)

More information about the project and its submodules can be found in the corresponding project page. Extensive documentation describing librecust principles and processes can be found in librecust wiki.

Project code and GitHub commits

Librecust code as well as packages for each of the submodules can be found in the project github repository. I, Arvanitis Christos (@arvchristos) have committed a number of code segments and fixes that can be found here.

Project parts

UI customization

  • Menubar and Toolbar customizations: Code
  • Inspect macros to access non-default submenus: Code

Extension development

  • Page Numbering Addon: Code. This addon is submitted in LibreOffice official extensions and pending approval from the community. This extension was approved and is currently published in the LibreOffice extensions & templates.
  • Page Style inheritance approach: LibreOffice(Python), OpenOffice(Basic,Python)
  • Legal paper assisting toolbar (LawAddon):
    • Insert Law: Extension that fetches Greek law text body to current cursor position. The API used for law fetching is provided by another GSOC project from GFOSS. gsoc2018-3gm.Code
    • Insert external document: Extension that inserts an external document as reference link to current cursor position using relative parts for document portability. Code
    • Insert contents table: Insert contents table simulating the corresponding tool from menubar. Code
    • Update contents table: Update all content tables without leaving current cursor position, speeding up the default process for long documents. Code

Template creation

While there are few public departments that use standardized legal documents (and have already implemented relevant templates), most services and court departments produce and use non-standardized documents. This is the reason why we decided to engineer a different approach for automation of document creation. The base of this approach is the AutoText functionality that is implemented in LibreOffice/OpenOffice.

Utilizing feedback from employees, we developed an AutoText addon that allows simultaneous usage of autotexts and editing of document. AutoTexts can save not only plain text but also tables and format data so repeating parts of documents are saved as documents, optimizing the whole relevant to Law document editing. Code

Deployment

  • Bash installation script: Code
  • Deb packaging for Council of State and other debian workstation services: Code.

Requirements

The requirements for using most of Librecust elements are the following:

  • LibreOffice 5.0 or higher (Some elements can compatible with earlier LO/OO versions)
  • UnoTools

However, an extensive list of required packages is included in the corresponding wiki page.

Timeline

The timeline followed throughout librecust development is included in the corresponding timeline gist

Future Work

The following future work can be done to improve the state of Librecust project:

  1. Add more sources to Insert Law functionality for uneventful access to the vast majority of law documents (Only access to gsoc2018-3gm database)
  2. Merge current document with external elements: By the end of the project, for every external document a bookmark is provided to give access to external element positions to future developers that attempt to implement this functionality. Complete merging requires canvas writing to external document elements (e.g. png, pdf...) in order for page numbering to be included. The exported document can be a pdf including all documents referenced in the main editing one.
  3. Page Numbering addon: Add further functionality to page numbering addon (even/odd pages numbered). The LIbreOffice API already includes functions that lead to such additions.
  4. Completely open source template management software (replacing proprietary/outdated software installed in such public services).
  5. Solution for distribution of AutoTexts among workstations of same departments.
  6. Automatic extraction of AutoText elements from a huge number of documents for each public service.
  7. Packaging for multiple other distributions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment