Published: 07/27/2022

The week 6 is 7.18-7.24

I was busy with my research in the first three days of this week. I had an online meeting with two mentors on Thursday. I reported my status, but found that I was working in the wrong direction. This meeting brings my work back to the right direction. Although working in the wrong direction, I am more familiar with the structure of the project.

What did you do this week?

Because I didn't learn Java and HTML, I spent two days to complete the function of the check box. Then display some attributes on the index page and set them as modifiable text boxes. But in the process of calling them directly, I found that some attributes have no values and cannot be displayed. I infer that the attributes I need to display are not transferred to the view page. Then I read the source code of the setting page and found that the setting page uses the Django form. I call the value of the attribute directly in HTML. This made me realize that I need to change the method to display properties.

Then I discussed this problem with my tutor Turnbull who also suggested that I use the method of Django form to realize the required functions. I created a new page that shows all the attributes. I can change the value in the text box, and then the check box can select the required data.

What is coming up next?

After determining the right direction, it will be faster to program and realize functions. The most important thing is to complete the basic functions.

In the next time, in addition to completing the basic functions, we also plan to optimize some other aspects. 1. Page logic, how to make users use new functions more smoothly. 2. The name of the optimization attribute display. 3. Page layout.

Did you get stuck anywhere?

I found that my communication with my tutor was not efficient, although I had meetings with my tutor Turnbull twice a week. But I still waste a lot of time in the wrong direction. And I forgot to use gitlab to upload my code, so that the tutor can’t better understand my work. This caused my progress to be slow.

View Blog Post


Published: 07/14/2022


The time of the fourth week should be 7.4-7.10 But I had a meeting with other tutors on July 12. So the work at this stage is two weeks.

The next thing we need to face is the mid-term evaluation of 7.25, so around this time point, we discussed the next code work. Next, I need to solve two problems through code: 1 Modifying a configuration will be applied to all configurations, and all configurations will be modified. Therefore, it is difficult to modify a configuration. 2. Once the configuration is mixed, it is difficult to find a specific list.

The functions that need to be implemented were discussed in the work of the second week. So we have an in-depth discussion on the functions.

Basically, the design is, we have a list of all the attributes of lists. To select a group of those and give them actually give the attribute of value and store that. And then press a button that says, apply. Then it just goes like just up for a loop, and it goes and it matches them all into place.


What did you do this week?

Continue the work of the database discussed with mentor Turnbull in the third week. I’m familiar with the database control method, but I have no data practice. Then a special meeting for the mid-term evaluation was held.


What is coming up next?

Realize the functions discussed in the meeting.

The steps are as follows:

  1. Find the attributes in the source code.
  2. Determine the attributes for migration.
  3. Note that some attributes are unique to the list.
  4. There is no need to copy the list ID, because it is unique.
  5. The attributes are divided into three categories (unique, do not want to copy [address or so on], can be configured).
  6. Make a large table in Django, provide options, etc.
  7. Determine the data suitable for display 8 Determine the number of displays paging function.


It should be noted that:

1. Which attributes are useful for migration lists and which attributes are useful for specific lists.

2. In django, there is risk roster, all of the subscriptions Find its basic form in the Postorius code. I can copy it.

3. Messages can be placed in the footer template, such as unsubscribing links, confidential emails, confidentiality, and no need to reply to emails, etc.

4. I don't need to consider member information, just consider the attributes of migration.

5. I may need to consider the REST mechanism

Did you get stuck anywhere?

The trickiest part is that the list can be Customizable.

And I can't clearly define the concept of configuration at present.

View Blog Post


Published: 07/05/2022


This week I started working on the structure of mailman. I tried to understand the source code of mailman. Find the important data for the mailing list, find their location and code. Classify these data into constant, internal data and system configuration data, and then develop corresponding tools.

What did you do this week?

Read the source code and start working on [mailman/src/mailman/model/] and [mailman/src/mailman/model/]. I found many variables, and I reported my work to my mentor tenbulu. I also need to find some variables related to the list tool in other documents.

The source code contains many Sqlalchemy functions. I will continue to study this database.

What is coming up next?

Continue to read the source code and try to use mailman to determine some necessary variables that I didn't find in the file.

Did you get stuck anywhere?

In the process of quickly locating variables, it is difficult for me to find the file where the corresponding variables are located.

View Blog Post


Published: 06/26/2022


Published: 06/26/2022  Sunday

In the past two weeks, I have completed the examination and presentation of all my courses. So I can spend more time on the mailman next.

It is gratifying that the tutor Turnbull is very good. I have an individual meeting with him every week to fully discuss the problems I encounter. Many problems are encountered in the development process, and the guidance of my tutor is very helpful to me. At the same time, other tutors are usually busy. We plan to hold the first meeting next Friday. Although we don't have a high frequency of meetings, they will also take time to seriously respond to my questions in the community.

At first I knew little about the development of this tool. I am very excited to find and solve problems in the development process.

Last week, I wanted to ask about my login problems in the community. But I learned a lot by looking at the records of questions and answers in the community, and I solved it myself. This question is really too simple.... Learn from others' experiences (questions and answers in the community) and don't ask too simple questions.


What did you do this week?

6.20-6.21       I solved my administrator login problem by reading technical documents and browsing the history of the community. The reason for the problem is that some of my configurations have not been modified to my super account, and I still use the example as the name.


6.22-6.23      I mistook the configuration of mailing list domains in Postorius for list configuration. The ORM based on Django adds the function of exporting CSV files. (JSON files are actually required) the purpose is to test whether there are still problems in my system environment and debug the function of exporting JSON files first.


6.24              On Friday afternoon, I had an individual meeting with tutor Turnbull. I reported what I had done. Tutor Turnbull corrected my mistakes in time and told me that the domain was not list configuration. List configuration needs to be found in the source code. At the same time, we also discussed the development of export tools:

1. The ability to export configuration files using console instructions should be developed.  

2. The function of using UI operations to export configuration files on Web pages.  

3. To export the configuration file, you need to display the data quantity per page function.

4. An option box is required to export the selected data.  

5. Use SQLite3 as the database.


What is coming up next?

According to the details of the individual meeting with tutor Turnbull this week, the next work is as follows:

1. Deeply understand the source code, find the data of list configuration, and be familiar with the data type

2. Continue to read the technical manual of mailman and the official documentation of some components

3 I am not familiar with SQLite and need to spend some time on it.

4. understand the structure of the web page.

5. learn console commands.

6 Learn how to export JSON files.


Did you get stuck anywhere?

It took me a lot of time to solve the problems I encountered.

A project contains many kinds of technologies. It is difficult for me to make progress without knowing some technologies, which slows down the development speed.

Some of mailman's technical manuals are old and some pages are missing.

View Blog Post