Final GSoC'23 Summary

Published: 08/28/2023

UI Improvements and adding defaults


The current version of Postorius and Mailman presents minimal information on the list index page, which only provides a link to each subscription's options page. It also does not have a user interface for creating different styles and applying them over new lists.


The objective is to enhance code quality and improve the user interface. This involves:

  • Creating a mechanism for administrators to establish user-specific styles and seamlessly apply them to new lists.
  • Generating a new view, which displays all attributes related to a mailing list.
  • Developing additional functionalities for importing, exporting, cloning, and batch modifying mailing lists.

Tasks Achieved:

  • Styles:
    • Created a new attribute and its API connection in the existing model, enabling the storage of new styles in the database.
    • A new form has been created to facilitate the registration of styles.
    • A new view has been implemented to display all available styles and their associated attributes. Administrators have the ability to update styles directly from this view.
  • Style Operations:
    • Apply:
      • This function enables the users to select a specific style and generate a new list with the same settings.
    • Clone:
      • This function enables the users to create a duplicate of their chosen style.
  • List Operations:
    • Export:
      • This function enables the users to select a specific list along with their preferred attributes, then export the list settings in a .json format.
    • Import:
      • This function enables the users to upload list settings in .json format and apply them to any list of their choice.
    • Clone:
      • This function enables the users to create duplicates of their chosen lists.
    • Batch Modify:
      • This function enables the users to pick a primary list and apply its specific attribute settings to one or more chosen lists simultaneously.
  • Attribute View:
    • Developed a new table that displays all registered lists along with their respective attributes.
    • Administrators can modify and update attribute values through this table.

Future Work

I plan on contributing significantly to the project after the GSoC period. Things I plan to do:

  • Further improving the code quality and working on making the codebase future proof.
  • Generating and registering a new default domain for styles.
  • Create a batch modification feature for styles.
  • Generating tests for the new code.

I am thankful to GooglePython Software Foundation, and GNU Mailman for providing me with this excellent opportunity and the mentors, Stephen J. Turnbull and Danil Smirnov, who guided and helped me throughout the program.