Can you provide a little more detail about the data you’re working with? You’re referencing a “Week 1”, “date 1” in your sample display but they don’t match anything you’re showing in how your data exists.
You mention that you have your models working already, it would be extremely helpful if you post the actual model and view you have so far.
You can perform your queries however necessary to retrieve the desired data. I see no immediate need to think about changing your model.
However, I’m still not seeing how “Week 1” is associated with this data. Do you have a formula to determine what dates are “Week 1”, etc? Are they fixed assignments, or relative to the current page?
Rendering this will be easy, once you’ve identified the pattern. You’ll render something like a div for a week, with the “Week” header at the top. In that same div, you’ll have 7 divs - one per day. At the top of each of those, you’ll have the day/date, then iterate over the blue boxes to be aligned vertically.
As a very rough pseudo-code, it’s going to look something like this:
for week in weeks
Week 1
for day in week
Day/Date
for event in day
Event
The weeknr is defined from the start_date of the event. Is this way every event (or shift in my case) has an own weeknr. As you mention performing queries and rendering the values for the specific div’s I have to dive in these subjects. Are not familiar with that yet.