creativecommons / creativecommons.github.io-source

Source files for CC Open Source website
https://opensource.creativecommons.org/
MIT License
73 stars 154 forks source link

Allow support for historical project ideas #249

Open kgodey opened 4 years ago

kgodey commented 4 years ago

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

kgodey commented 4 years ago

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

anisin97 commented 4 years ago

@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 commented 4 years ago

Please give your views on it.

kgodey commented 4 years ago

@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!

ritesh-pandey commented 3 years ago

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 commented 3 years ago

@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

ritesh-pandey commented 3 years ago

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.

kgodey commented 3 years ago

@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?

ritesh-pandey commented 3 years ago

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?

kgodey commented 3 years ago

@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.

Cronus1007 commented 3 years ago

@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

kgodey commented 3 years ago

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

Cronus1007 commented 3 years ago

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.

kgodey commented 3 years ago

I don't think anyone is working on it.

Cronus1007 commented 3 years ago

@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.

kgodey commented 3 years ago

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

Cronus1007 commented 3 years ago

@TimidRobot Let me start implementing this issue.

Git-NMT commented 1 year ago

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