creativecommons.github.io-source icon indicating copy to clipboard operation
creativecommons.github.io-source copied to clipboard

Allow support for historical project ideas

Open kgodey opened this issue 4 years ago • 18 comments

Description

Currently, the way our internship project ideas are set up only allows one set of project ideas to be live at a time. We'd like to show historical project ideas on our website as well.

Additional context

  • https://github.com/creativecommons/creativecommons.github.io-source/blob/c4505dffa8aa8c6fcd2cc735acd7496bea6ca505/themes/vocabulary_theme/templates/project-ideas.html#L11
  • Project ideas models:
    • https://github.com/creativecommons/creativecommons.github.io-source/blob/master/models/project-ideas.ini
    • https://github.com/creativecommons/creativecommons.github.io-source/blob/master/models/project-ideas-collection.ini

kgodey avatar May 11 '20 21:05 kgodey

Please put your implementation ideas here for discussion before sending a PR.

kgodey avatar May 11 '20 21:05 kgodey

@kgodey We can add Project Titles under the bullet of each year. Under it, we can give a short description, including the Student and Mentor name. The GSoC'19 bullet carries blog links for all projects, so we can also include short description and names. However, the project links should come under a sub-heading of Projects to separate them from other links. The link of 'Open Source Blog Posts' mentioned under various categories is ambiguous to a new user. It should be changed to 'Open Source Blog Posts-GSoC'19' or something alike for different categories which points out that it is a link to blogs to such. For the Content box, we can add bullet links under GSoC heading for every year. Similar structure can be used for Outreachy posts, with Project title, short description, participant name.

anisin97 avatar May 12 '20 05:05 anisin97

Please give your views on it.

anisin97 avatar May 12 '20 05:05 anisin97

@theprover97 I don't understand the solution you are proposing. Could you explain in more detail with screenshots if you're proposing UI changes or references to lines of code where you're proposing code changes?

Thanks!

kgodey avatar May 15 '20 19:05 kgodey

If I understood correctly, we want to host historical GSoC projects ideas on our website as opposed to https://www.google-melange.com/archive/gsoc/. Historical project ideas are currently accessible via menu Internships -> History.

We want to port content from google-melange and store it in structured format. The links on History page should take us to the newly formed pages. We can use the existing models to create template pages.

ritesh-pandey avatar Jul 28 '20 15:07 ritesh-pandey

@ritesh-pandey that sounds like a great idea but I wasn't thinking about porting content from GSoC's websites or updating the History section, although we could certainly do that once this is implemented

We've had a few rounds of internships so far, but we don't show the previous project ideas for those internship rounds. We'd like to restore them from the old git commits, perhaps in a new section of the Internships > History page.

See these PRs that replace the project ideas entirely: https://github.com/creativecommons/creativecommons.github.io-source/pull/239 https://github.com/creativecommons/creativecommons.github.io-source/pull/170

kgodey avatar Jul 28 '20 15:07 kgodey

We can place all project ideas in same folder i.e. project-ideas-collection. Archived (Historical) and non-archived (live) ideas can be differentiated by a boolean model field archived.

The template which renders non-archive ideas can use a filter in for loop.

Our current History page uses page-with-toc.html template. We can create a new template which extends page-with-toc.html and contains additional section for Project Ideas History. Here we can use a for loop similar to one in project-ideas.html template. Only difference is that here we need add filter for archived ideas.

Here is a step-by-step guide:

  1. Add a boolean field archived with default value false in project-idea.ini model. This is used to differentiate between archived and non-archived idea in project-ideas-collection directory.
  2. Create content file for all archived ideas using project-idea.ini model. Set the field archived to true.
  3. For live ideas, set field archived = false in content.
  4. Modify project-ideas.html template such that it should iterate on non-archived ideas only. {% for idea in ideas.filter(F.archived == false) %} This way our current functionality is preserved.
  5. Create a new template internship-history.html which extends page-with-toc.html. Add a section in it for historical project ideas. We can iterate over archived project ideas and render them. This loop is similar to one in project-ideas.html

I have a POC ready. Let me know if you want to have a look.

ritesh-pandey avatar Jul 29 '20 10:07 ritesh-pandey

@ritesh-pandey I think you're on the right track! The two main changes I would suggest are:

  1. I think we should have a field indicating which internship round each project idea is associated with. It would be great if we could just have a folder for each internship round's project ideas.

  2. I think it would be good to use the existing project ideas template and just have a different project ideas page for each round of internships. We can link to archived rounds from the history page. That way, we don't have to make any new templates.

What do you think?

kgodey avatar Jul 29 '20 20:07 kgodey

In this scenario, we don't need archived field. This field was useful when we had all ideas at same directory level and we needed to differentiate between live and archived.

We plan to have different content directories. The current live internship round can be linked from project-ideas.html template. In content, we can create gsod-2020 directory inside project-idea-collections and put all GSOD 2020 ideas inside it. This gsod-2020 directory will then be linked from project-ideas.html template. Am I getting it right?

Similarly we can have directories for all other rounds of internships. These can be linked from History page.

There is one thing which I am unable to figure out. To render currently live project ideas, we hardcode the link to content directory in template file like this.

How are we going to achieve that for all rounds of internships? Multiple template files where each one has hardcoded link to respective content directory? We need some mechanism to iterate over content files.

Am I missing anything?

ritesh-pandey avatar Jul 30 '20 18:07 ritesh-pandey

@ritesh-pandey that all sounds right!

We need to remove the hardcoding of the content directory in the template file and instead of make it something we pass into the template somehow. I think we should just have a single template file. I am not sure how to solve this, any thoughts are appreciated.

kgodey avatar Jul 30 '20 19:07 kgodey

@kgodey I think this issue is a somewhat related to #576 where I have moved information about old GSOC-projects from cc-archive org of github to Internships ---> History section of few specific years like 09-13 but the info about GSOC projcts from 06-08 lacks info . I am still researching may be I find the required data on cc-archive

Cronus1007 avatar Dec 16 '20 19:12 Cronus1007

@Cronus1007 This is not about finding more information, this is about updating the code to support browsing through project ideas for multiple years.

kgodey avatar Dec 17 '20 15:12 kgodey

If I understood correctly, we want to host historical GSoC projects ideas on our website as opposed to https://www.google-melange.com/archive/gsoc/. Historical project ideas are currently accessible via menu Internships -> History.

We want to port content from google-melange and store it in structured format. The links on History page should take us to the newly formed pages. We can use the existing models to create template pages.

@kgodey You guys want to implement in this manner. Actually I misunderstood the conversation. I want to take over this issue. So is someone working on this issue.

Cronus1007 avatar Dec 17 '20 15:12 Cronus1007

I don't think anyone is working on it.

kgodey avatar Dec 17 '20 16:12 kgodey

@kgodey A little idea of implementation from my side. In website's Internship ---> History Section we have categories of GSOC-2019(just an example) when we click on the main link of GSOC-2019 we get redirected to the GSOC website. So what I am going to do that break the links and then implement the above via content/gsoc-2019/project-ideas/contents.lr. In this way we would be able to engage the user in the CC website only rather than multiple links for the user in new tabs.

Cronus1007 avatar Dec 18 '20 05:12 Cronus1007

I'm going to defer to @TimidRobot on questions about this issue since they are going to be taking over maintaining the site.

kgodey avatar Dec 18 '20 17:12 kgodey

@TimidRobot Let me start implementing this issue.

Cronus1007 avatar Feb 02 '21 03:02 Cronus1007

Mô tả:__________

Hiện tại, cách các ý tưởng dự án thực tập của chúng tôi được thiết lập chỉ cho phép một bộ ý tưởng dự án được thực hiện tại một thời điểm. Chúng tôi cũng muốn hiển thị các ý tưởng dự án lịch sử trên trang web của chúng tôi.

Ngữ cảnh bổ sung

  • Mẫu ý tưởng dự án (dòng 10 mã cứng vị trí ý tưởng dự án)
  • Mô hình ý tưởng dự án:
    • https://github.com/creativecommons/creativecommons.github.io-source/blob/master/models/project-ideas.ini
    • https://github.com/creativecommons/creativecommons.github.io-source/blob/master/models/project-ideas-collection.ini

Git-NMT avatar May 16 '23 04:05 Git-NMT