Articles on LIULIANG's Bloghttps://blogs.python-gsoc.orgUpdates on different articles published on LIULIANG's BlogenMon, 05 Sep 2022 10:59:09 +0000WEEK 13 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-13-blog/<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Week 13 is 8.29-9.4</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Because 9.5 began to submit the final results, I discussed this with my mentor Turnbull this week. So in this week's blog, I only summarize the completed functions and the next functions.</span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Fixed bug of highlight modification.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Added the function of flexibly rendering headers according to the incoming data.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Flexibly render the form content according to the incoming data.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Modified the saving logic of data: only modify the attributes displayed on the page.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Migrated static list and dictionary to utils.py.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">The back-end part of the display filter is completed.</span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">List style page part.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Clone list.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">The list clone is migrated to the mailman client.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Mon, 05 Sep 2022 10:59:09 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-13-blog/WEEK 12 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-12-blog-1/<h1 style=""><span style=""><span style=""><span style=""><span style=""><span style="">Week 12 is 8.22-8.28</span></span></span></span></span></h1>
<p><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">The original work of this week should be list style. However, as the final evaluation is approaching, I will complete the basic functions first, and then complete these extended functions.</span></span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">This week I adjusted the rewritten HTML page. There are many data types of list attributes data, among which list data will be displayed in brackets [] in the textarea. This causes the user to manually delete the brackets, otherwise the data returned to the background will not meet the requirements. This will cause the application modification to fail.</span></span></span></span></span></span></p>
<p><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">The method I use is to display the list attributes in a loop on the page, and re encapsulate the text area content into a list when it returns to the backend.</span></span></span></span></span></span></p>
<p><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">I have completed the export function. A button is added on the page to export the selected list. If the list is not selected through the check box, the JSON file will not be generated.</span></span></span></span></span></span></p>
<p><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">At the same time, I am working on the import function. The process of import function is to select a file and parse JSON data, return the corresponding attributes to the backend, and then create a corresponding list according to the obtained content. At present, I have completed the file parsing function.</span></span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">I will discuss with my tutor about importing JSON files and cloning lists, and will complete these two main functions next week.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Prepare the documents required for the final evaluation.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">If it is completed smoothly, I will continue to work on UI design.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Mon, 29 Aug 2022 13:37:13 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-12-blog-1/WEEK 11 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-11-blog/<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Week 11 is 8.15-8.21</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">I got gastroenteritis on 8.19. I worked less this week than usual.</span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">8.15, I determined two methods for the next work.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">8.17, I reported the current scheme to my tutor Turnbull. My tutor suggested that using the form set. So I used the form set to start regenerating the HTML page. In the process of browsing the official technical documents, I have never found a way to highlight the modification.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">It may be very simple to realize the function of displaying attributes, but the difficulty of realizing other functions needs to be considered. So I still prefer to use HTML language to generate pages. Implement subsequent functions in combination with JS.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">I learned CSS, bootstrap, JS, jQuery</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">I rewrite the code that generates the page. At the same time, the method of application modification is redesigned.</span></span></span></span></span></p>
<p><span style=""><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">Next I will work on the list style.</span></span></span></span></span></p>
<p style=""><span style=""><span style=""><span style=""><span style=""><span style="">I stopped and investigated the method when determining the follow-up method. It took me a few days, but it may speed up the follow-up development, which is worth it.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Mon, 22 Aug 2022 11:58:26 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-11-blog/WEEK 10 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-10-blog-1/<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Week 10 is 8.8-8.14.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I started working on 8.10.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">First, I thought about the next steps. Currently, the functions to be completed are list style, list cloning, and applying modification. The next task is to export the list configuration to the JSON file and import the JSON file migration configuration. In these steps, the applying modification has the highest priority. Only after the applying modification function is completed, I can realize list cloning and more modification and management.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">So I first worked on the applying modification part. I finished this part very quickly. The test uses 5 lists. After the form is submitted by clicking the submit button on the page, all data will be returned to the back end. The value returned by request.POST is a list corresponding to the key. The list stores the value of five lists. I used the loop method and applied all the changes.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">At this time, there is a problem. Only one radio button can be selected from the data in one column and only one data is returned. This has always been a problem. I found the cause of the problem in form = form _ class (initial = initial_data,mlist = m_list, auto_id = True) to generate a form. In fact, it is rendered into HTML code according to the class of the form and the initial data. However, the IDs generated automatically by these codes in the process of generating the list are all from 0. This results in the same id for all fields. I spent four days looking for a solution to this problem.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">1. I try to generate all the forms directly. This problem can be solved without using the loop function. So I tried to merge the initial data of all the lists and use the form = form _ class function generates a form. But I failed. This function can't recognize a dictionary with a list value, and finally only displays a list.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">2. I found a way to customize the id. By defining the attr of the widget and adding the id, can generate a customized id. First, I modified the id, but the situation has not changed. All radio buttons have the same customize id. I try to change the id to str (list_id) + field_ name to generate a unique id. I tried to customize functions, initialize classes, and modify variables across files, but none of them can achieve the function I want to complete. I guess it's because of the list_ form.py is a static model file, which cannot be modified dynamically.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">3. I try to find a way to realize this function in the templae language. But I didn't find it. All the functions are used to display data and cannot be modified.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">After nearly five days of exploration, up to now, 8.15, I have two ideas to complete this function.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Idea 1: replace the radio button with a drop-down menu. In the whole table, only the radio button part has a problem. The pull-down menu that can also realize the selection function can be used normally. Radio buttons with only two options can also be changed into drop-down menus to realize functions.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Idea 2: rewrite the HTML page. Because the form function is used to automatically render the HTML code, it is difficult for me to modify the id. At the same time, this problem also appears in other parts, but there is a problem with the use of radio buttons. However, in consideration of the need to implement clone list, change list style, export list, import content and other functions, this problem may affect the implementation of subsequent functions and take more time. There are many functions to be implemented on this page, so I prefer to write HTML pages directly for generating tables.</span></span></span></span></span></p>
<p style="text-align: left;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Rewrite the table in the template file using HTML language.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Practice of creating checkboxes and lists.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Realize batch modification.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Realize the function of clone list.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Mon, 15 Aug 2022 11:40:09 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-10-blog-1/WEEK 8(Midterm Evaluation)and WEEK 9 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-8-midterm-evaluation-and-week-9-blog/<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The week 8 is 7.25-7.31.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">In the week 8, I started my midterm evaluation. But since I had not made progress in the right place before, I continued to work at the beginning of this week. Tutor Turnbull gave me important guidance on how to use Django forms. I created a new page to display the attributes. At the same time, I successfully used the function of Django form to create all_attributes form. Use text boxes to display data for all attributes. However, there is an issue in getting all list id. I didn’t find an suitable method to obtain all the list numbers.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I finished the page displaying the contents of a list on 7.28. And upload this to GitHub as the material for the mid-term evaluation.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">When I didn't get the results of the midterm evaluation, I continued my work. I don't want to interrupt my current state of concentration.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">7.29 for the list id, I decided to start with the database. Find the database that stores the data, and then read the relevant code to find the way to get the data. So I found all the list id in one database of Hyperkitty. The database in Postorius does not have list id. By calling the data of Hyperkitty, I successfully obtained the all list id and displayed the attrbutes of all lists.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I reported this result to my tutor, who suggested that I had better use the functions of components independently, because each component may be deployed in different places. Therefore, my method may not get the returned result during the actual operation.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I have looked at the source code carefully. It is true that they are all developed independently and will not call each other. So I began to look for other ways to solve this problem.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I began to understand the knowledge of REST and tried to use it to solve this problem. This is what I didn't learn and pay attention to during my previous practice.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Thus, the week 8 is over. I've been working almost all week. I focus on the program and I'm happy. It's just that I stopped almost all my other work.</span></span></span></span></span></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The week 9 is 8.1-8.7</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">This week begins to make up for the learning and research tasks delayed last week. I have another exam on 8.9.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">At the end of the middle term, I got the evaluation of my tutor. The tutor pointed out my problems, and I had a deep reflection on them. I don't want the work in the second half to be as bad as before.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The main work this week is to make up for my other tasks, continue to work, think about the next work, and prepare for the exam.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">This week, I learned REST in my spare time of other tasks, and successfully used the postorius function in 8.5 to obtain all list id and successfully display all list attributes. I gave this report to my tutor, who confirmed my method and finally completed this function. At the same time, we discussed the next work. Next, we need to optimize the interface logic from the user's point of view, and possibly modify the database.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">I didn't work at the weekend because the exam was near.</span></span></span></span></span></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Next:</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">1. Optimize the user interface and list style.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">2. Fix some issues, check box display issue, radio box issue.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">3. Link the database and use the API to operate the database.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">4. Add list cloning function.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">5. From the user's point of view, add convenient control functions. For example, how to quickly modify the specified list when there are 2000 lists. (add a function similar to shopping cart?)</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">6. Apply modifications.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Tue, 09 Aug 2022 10:54:17 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-8-midterm-evaluation-and-week-9-blog/WEEK 6 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-6-blog-1/<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The week 6 is 7.18-7.24</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">After determining the right direction, it will be faster to program and realize functions. The most important thing is to complete the basic functions.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>Did you get stuck anywhere?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Wed, 27 Jul 2022 15:47:36 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-6-blog-1/WEEK 4 AND WEEK 5 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-4-and-week-5-blog/<p style="text-align: left;"> </p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p style="text-align: left;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Realize the functions discussed in the meeting.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The steps are as follows:</span></span></span></span></span></p>
<ol>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Find the attributes in the source code.</span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Determine the attributes for migration.</span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Note that some attributes are unique to the list.</span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">There is no need to copy the list ID, because it is unique.</span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The attributes are divided into three categories (unique, do not want to copy [address or so on], can be configured).</span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Make a large table in Django, provide options, etc. </span></span></span></span></span></li>
<li style="margin-left: 12px; text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">Determine the data suitable for display 8 Determine the number of displays paging function.</span></span></span></span></span></li>
</ol>
<p style="text-align: left;"> </p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">It should be noted that:</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">1. Which attributes are useful for migration lists and which attributes are useful for specific lists.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">2. In django, there is risk roster, all of the subscriptions Find its basic form in the Postorius code. I can copy it.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">3. Messages can be placed in the footer template, such as unsubscribing links, confidential emails, confidentiality, and no need to reply to emails, etc.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">4. I don't need to consider member information, just consider the attributes of migration.</span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">5. I may need to consider the REST mechanism</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>Did you get stuck anywhere?</u></b></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">The trickiest part is that the list can be Customizable. </span></span></span></span></span></p>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Times New Roman",serif;'><span style="color: #222222;">And I can't clearly define the concept of configuration at present.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Thu, 14 Jul 2022 14:27:10 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-4-and-week-5-blog/WEEK 3 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-3-blog/<h1 style="text-align: justify; margin-top: 23px; margin-bottom: 22px;"> </h1>
<p style="text-align: left; text-indent: 21.0pt;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Arial",sans-serif;'><span style="color: #222222;">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.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Arial",sans-serif;'><span style="color: #222222;">Read the source code and start working on [mailman/src/mailman/model/list.py] and [mailman/src/mailman/model/list_manager.py]. 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.</span></span></span></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Arial",sans-serif;'><span style="color: #222222;">The source code contains many Sqlalchemy functions. I will continue to study this database.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Arial",sans-serif;'><span style="color: #222222;">Continue to read the source code and try to use mailman to determine some necessary variables that I didn't find in the file.</span></span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>Did you get stuck anywhere?</u></b></span></span></p>
<p style="text-align: left;"><span style="font-size: 10.5pt;"><span style=""><span style="background: white;"><span style='font-family: "Arial",sans-serif;'><span style="color: #222222;">In the process of quickly locating variables, it is difficult for me to find the file where the corresponding variables are located.</span></span></span></span></span></p>ll458385038@gmail.com (LIULIANG)Tue, 05 Jul 2022 07:48:48 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-3-blog/WEEK 2 BLOGhttps://blogs.python-gsoc.org/en/liuliangs-blog/week-2-blog-1/<p><span style="font-size: 12pt;"><span style=""><span style="font-size: 10.5pt;"><span style="">LIU LIANG</span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><span style="font-size: 10.5pt;"><span style="">Published: 06/26/2022 Sunday</span></span></span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">At first I knew little about the development of this tool. I am very excited to find and solve problems in the development process.</span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-align: justify;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p style="text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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: </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">1. The ability to export configuration files using console instructions should be developed. </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">2. The function of using UI operations to export configuration files on Web pages. </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">3. To export the configuration file, you need to display the data quantity per page function.</span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">4. An option box is required to export the selected data. </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">5. Use SQLite3 as the database.</span></span></p>
<p style="text-align: justify;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p style="text-align: justify;"><span style="font-size: 10.5pt;"><span style="">According to the details of the individual meeting with tutor Turnbull this week, the next work is as follows: </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">1. Deeply understand the source code, find the data of list configuration, and be familiar with the data type </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">2. Continue to read the technical manual of mailman and the official documentation of some components </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">3 I am not familiar with SQLite and need to spend some time on it. </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">4. understand the structure of the web page. </span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">5. learn console commands.</span></span></p>
<p style="margin-left: 14px; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">6 Learn how to export JSON files.</span></span></p>
<p style="text-align: justify;"> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>Did you get stuck anywhere?</u></b></span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">It took me a lot of time to solve the problems I encountered.</span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">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.</span></span></p>
<p style="text-indent: 21.0pt; text-align: justify;"><span style="font-size: 10.5pt;"><span style="">Some of mailman's technical manuals are old and some pages are missing.</span></span></p>ll458385038@gmail.com (LIULIANG)Sun, 26 Jun 2022 02:32:40 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-2-blog-1/WEEK 1 BLOG__June 19th 2022https://blogs.python-gsoc.org/en/liuliangs-blog/week-1-blog-june-19th-2022/<p><span style="font-size: 12pt;"><span style="">LIU LIANG</span></span></p>
<p><span style="font-size: 12pt;"><span style="">Published: 06/19/2022 Sunday</span></span></p>
<p><span style="font-size: 12pt;"><span style=""><tt style=""><span style='font-family: "Times New Roman",serif;'>My name is LIU LIANG. Currently, I am a GSoC student and I am developing a tool for mailman for configuration tool. </span></tt></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><tt style=""><span style='font-family: "Times New Roman",serif;'>You can learn more about what I am doing by following the link below. </span></tt></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><tt style=""><span style='font-family: "Times New Roman",serif;'>https://wiki.list.org/DEV/Google%20Summer%20of%20Code%202022#List_Configuration_Tool </span></tt></span></span></p>
<p> </p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What did you do this week?</u></b></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><span style="font-size: 10.5pt;"><span style='font-family: "Times New Roman",serif;'>My research this week took me a lot of time. I reconfigured the virtual machine environment, installed the components of the virtual machine, and reinstalled the mailman program. However, I encountered some problems. When I used my super account to log in to the email management system, I didn't receive a link to verify my account, so I couldn't log in. I discussed this problem with my mentor Turnbull who suggested that I ask in the community and get help from other developers to solve this problem. For this problem, I have been constantly reading the technical documents related to mailman and found that many of them have not been updated and are not applicable to the new version. Some content has been lost. As a beginner, documentation is very helpful. I hope to update and improve the document after I fully understand the knowledge in it.</span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>What is coming up next?</u></b></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><span style="font-size: 10.5pt;"><span style='font-family: "Times New Roman",serif;'>Next week I will look for help in the community to solve my problems. Test the configuration function of mailman.</span></span></span></span></p>
<p><span style="font-size: 12pt;"><span style=""><b><u>Did you get stuck anywhere?</u></b></span></span></p>
<p style="text-align: justify;"><span style="font-size: 12pt;"><span style=""><span style=""><span style="font-size: 10.5pt;"><span style='font-family: "Times New Roman",serif;'>It's my first time to work on such a big project. I'm not used to it. Although I am familiar with the structure of Django, Mailman also includes other components, so it takes more time to solve the problem.</span></span></span></span></span></p>
<p> </p>ll458385038@gmail.com (LIULIANG)Sun, 19 Jun 2022 13:56:44 +0000https://blogs.python-gsoc.org/en/liuliangs-blog/week-1-blog-june-19th-2022/