Skip to content

Instantly share code, notes, and snippets.

@Error838
Last active August 28, 2023 15:38
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 Error838/fc36ec9a0ce8e05a0b8d998644fd77c7 to your computer and use it in GitHub Desktop.
Save Error838/fc36ec9a0ce8e05a0b8d998644fd77c7 to your computer and use it in GitHub Desktop.
Final Report for Google Summer of Code' 23

GSoC 2023

Google Summer of Code' 23 Final Report


UI Improvements and adding defaults

Summary:

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.

Aim:

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.

Code:


You can find a detailed description of progress and work done in weekly blogs.


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 Google, Python 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment