Kexi/Integration/Mail Merge

From KDE Community Wiki

Note

Needs updates


Objectives

Mail merge is a software function describing the production of multiple (and potentially large numbers of) documents from a single template form and a structured data source.

The objective is to add support of Mail Merge feature to Calligra. It should be visible in Words with some optional visibility in Kexi.

Solutions

  • From [1]: Mail merge is tightly coupled to variables. What we want is a variable that is an end of record marker after which the variable-database will be able to go to the next record of a mail-merge database.
  • ODF specs for variables: 7.4. Variable Fields[2]

Scope

  • Support ODT/Words templates
    • Document is generated based on the template duplicated N times
  • MS formats supported thanks to the way how filter chains work (i.e. documents are imported into ODF anyway)
  • Data source based on CSV, ODS and Kexi database (???)
    • The idea behind offering CSV dialog directly is to avoid forcing the user to take extra steps (CSV -> Sheets -> Mailmerge, or CSV -> Kexi -> Mailmerge)

Maybe in scope

  • Noninteractive mailmerge (based on specification once defined by user: data+template+options)

Out of scope

  • Support for ODS/Sheets, and other calligra apps
  • Direct support without loading/importing documents within Words
  • Integration with Kexi GUI to get in-Kexi functionality (e.g. ability of selecting tables/queries and bind them to a ODT template)
  • Support for big data sources: we do not always have to generate full documents. For 100 records applied to a 10-pages-long template we have a resulting 1000-pages document with highly redundant contents. A sequential printout (100x) of the same document with updated variables can be created instead if all what user wants is printing, not saving the generated document.
  • Using Kexi’s CSV importer: it’s powerful but it needs to be merged into common Calligra libs first, then Mailmerge can use it almost “for free”

Who?

(early, unofficial proposals)

  • Smit Patel - main development
    • Declared availability: May 7-Sep 16, 25 hours a week
  • Mentors: jstaniek, boemann(?)
  • Consulting: boemann (Words maintainer)

When?

  • Design prior to/during GSoC 2013 [3]
  • Implementation: during GSoC 2013:
    • Apr 9-21: Official discussions with the student(s)
    • Apr 22-May 3: Application
    • May 27-Sep 16: Development
    • July 29: Mid-term evaluation
    • Sep 27: Final evaluation

Deliverables

  • UX
    • IN PROGRESS: Research on the existing UX solutions (Libre, MS, Apple, etc.)
  • Software architecture
    • IN PROGRESS: Detailed research on related ODF functionality and how to use it
  • TODO: Implementation
  • TODO: Fundamental unit tests