Skip to content

Issue with nested containers after update

After updating to djangoldp version 0.6.6 I encountered an issue with sib-core unable to display/load any data coming from nested containers.

I went from getting this list when calling the URI http://localhost:8000/users/1/resources/:

{
  "@id": "",
  "@type": "ldp:Container",
  "ldp:contains": [
    {
      "@id": "http://localhost:8000/resources/1/",
      "name": "Value proposition design",
      "description": "Pellentesque urna neque, posuere ac vulputate et, rhoncus ut nisi. Etiam at ligula eget orci viverra fermentum id pellentesque ante.",
      "skills": "Is vulputate. Aliquam mollis consectetur enim, et aliquet lorem. Fusce quis placerat urna. Vestibulum pharetra rhoncus felis at mollis. Mauris purus diam, iaculis at massa vel, lacinia sollicitudin mauris. Nullam ultricies, ligula quis varius aliquam, eros mi ultric",
      "author": "Alex Osterwalder",
      "target": "public",
      "uri": "https://www.strategyzer.com/books/value-proposition-design",
      "publication_year": 2000,
      "format": {
        "@id": "http://localhost:8000/resources/1/format/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/formats/2/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "conversations": {
        "@id": "http://localhost:8000/resources/1/conversations/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "steps": {
        "@id": "http://localhost:8000/resources/1/steps/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "language": {
        "@id": "http://localhost:8000/languages/1/"
      },
      "fields": {
        "@id": "http://localhost:8000/resources/1/fields/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/fields/7/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "type": {
        "@id": "http://localhost:8000/types/1/"
      },
      "related": {
        "@id": "http://localhost:8000/resources/1/related/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/resources/2/"
          },
          {
            "@id": "http://localhost:8000/resources/2/"
          },
          {
            "@id": "http://localhost:8000/resources/2/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "likes": {
        "@id": "http://localhost:8000/resources/1/likes/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "review": {
        "@id": "http://localhost:8000/reviews/37/"
      },
      "sharing": "public",
      "@type": "coopstarter:resource",
      "permissions": [
        {
          "mode": {
            "@type": "view"
          }
        },
        {
          "mode": {
            "@type": "change"
          }
        },
        {
          "mode": {
            "@type": "control"
          }
        },
        {
          "mode": {
            "@type": "delete"
          }
        }
      ]
    },
    {
      "@id": "http://localhost:8000/resources/2/",
      "name": "Business Plan Spreadsheet",
      "description": "Mauris malesuada lacus non arcu interdum tincidunt. Etiam consequat, purus id interdum blandit, odio ex interdum felis, ut aliquet metus turpis id tellus.",
      "skills": "Etiam a hendrerit leo. In fermentum quis libero quis vulputate. Aliquam mollis consectetur enim, et aliquet lorem. Fusce quis placerat urna. Vestibulum pharetra rhoncus",
      "author": "Blaise Balaise",
      "target": "public",
      "uri": "https://docs.google.com/spreadsheets/d/1VYNmqo7lm07q5JyKNw5NFf6QMhmhH9osIPjFwjaMipM/",
      "publication_year": 2018,
      "format": {
        "@id": "http://localhost:8000/resources/2/format/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/formats/3/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "conversations": {
        "@id": "http://localhost:8000/resources/2/conversations/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "steps": {
        "@id": "http://localhost:8000/resources/2/steps/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/steps/4/"
          },
          {
            "@id": "http://localhost:8000/steps/4/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "language": {
        "@id": "http://localhost:8000/languages/1/"
      },
      "fields": {
        "@id": "http://localhost:8000/resources/2/fields/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/fields/7/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "type": {
        "@id": "http://localhost:8000/types/1/"
      },
      "related": {
        "@id": "http://localhost:8000/resources/2/related/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/resources/1/"
          },
          {
            "@id": "http://localhost:8000/resources/1/"
          },
          {
            "@id": "http://localhost:8000/resources/5/"
          },
          {
            "@id": "http://localhost:8000/resources/1/"
          },
          {
            "@id": "http://localhost:8000/resources/4/"
          },
          {
            "@id": "http://localhost:8000/resources/5/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "likes": {
        "@id": "http://localhost:8000/resources/2/likes/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "review": null,
      "sharing": "public",
      "@type": "coopstarter:resource",
      "permissions": [
        {
          "mode": {
            "@type": "view"
          }
        },
        {
          "mode": {
            "@type": "change"
          }
        },
        {
          "mode": {
            "@type": "control"
          }
        },
        {
          "mode": {
            "@type": "delete"
          }
        }
      ]
    },
    {
      "@id": "http://localhost:8000/resources/11/",
      "name": "Another resource",
      "description": "Description toto.",
      "skills": "Learning outcomes",
      "author": "Resource Author",
      "target": "public",
      "uri": "https://www.google.com",
      "publication_year": 2003,
      "format": {
        "@id": "http://localhost:8000/resources/11/format/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/formats/2/"
          },
          {
            "@id": "http://localhost:8000/formats/3/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "conversations": {
        "@id": "http://localhost:8000/resources/11/conversations/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "steps": {
        "@id": "http://localhost:8000/resources/11/steps/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/steps/2/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "language": {
        "@id": "http://localhost:8000/languages/1/"
      },
      "fields": {
        "@id": "http://localhost:8000/resources/11/fields/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/fields/3/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "type": {
        "@id": "http://localhost:8000/types/1/"
      },
      "related": {
        "@id": "http://localhost:8000/resources/11/related/",
        "@type": "ldp:Container",
        "ldp:contains": [
          {
            "@id": "http://localhost:8000/resources/5/"
          }
        ],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "likes": {
        "@id": "http://localhost:8000/resources/11/likes/",
        "@type": "ldp:Container",
        "ldp:contains": [],
        "permissions": [
          {
            "mode": {
              "@type": "add"
            }
          },
          {
            "mode": {
              "@type": "view"
            }
          }
        ]
      },
      "review": {
        "@id": "http://localhost:8000/reviews/39/"
      },
      "sharing": "public",
      "@type": "coopstarter:resource",
      "permissions": [
        {
          "mode": {
            "@type": "view"
          }
        },
        {
          "mode": {
            "@type": "change"
          }
        },
        {
          "mode": {
            "@type": "control"
          }
        },
        {
          "mode": {
            "@type": "delete"
          }
        }
      ]
    }
  ],
  "permissions": [
    {
      "mode": {
        "@type": "add"
      }
    },
    {
      "mode": {
        "@type": "view"
      }
    }
  ],
  "@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld"
}

To getting this one (same URI):

{
   "@id":"http://localhost:8000/users/1/",
   "@type":"ldp:Container",
   "ldp:contains":[
      {
         "@id":"http://localhost:8000/resources/1/",
         "name":"Value proposition design",
         "description":"Pellentesque urna neque, posuere ac vulputate et, rhoncus ut nisi. Etiam at ligula eget orci viverra fermentum id pellentesque ante.",
         "skills":"Is vulputate. Aliquam mollis consectetur enim, et aliquet lorem. Fusce quis placerat urna. Vestibulum pharetra rhoncus felis at mollis. Mauris purus diam, iaculis at massa vel, lacinia sollicitudin mauris. Nullam ultricies, ligula quis varius aliquam, eros mi ultric",
         "author":"Alex Osterwalder",
         "target":"public",
         "uri":"https://www.strategyzer.com/books/value-proposition-design",
         "publication_year":2000,
         "format":{
            "@id":"http://localhost:8000/resources/1/format/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/formats/2/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "conversations":{
            "@id":"http://localhost:8000/resources/1/conversations/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "steps":{
            "@id":"http://localhost:8000/resources/1/steps/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "language":{
            "@id":"http://localhost:8000/languages/1/"
         },
         "fields":{
            "@id":"http://localhost:8000/resources/1/fields/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/fields/7/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "type":{
            "@id":"http://localhost:8000/types/1/"
         },
         "related":{
            "@id":"http://localhost:8000/resources/1/related/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/resources/2/"
               },
               {
                  "@id":"http://localhost:8000/resources/2/"
               },
               {
                  "@id":"http://localhost:8000/resources/2/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "likes":{
            "@id":"http://localhost:8000/resources/1/likes/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "review":{
            "@id":"http://localhost:8000/reviews/37/"
         },
         "sharing":"public",
         "@type":"coopstarter:resource",
         "permissions":[
            {
               "mode":{
                  "@type":"view"
               }
            },
            {
               "mode":{
                  "@type":"change"
               }
            },
            {
               "mode":{
                  "@type":"control"
               }
            },
            {
               "mode":{
                  "@type":"delete"
               }
            }
         ]
      },
      {
         "@id":"http://localhost:8000/resources/2/",
         "name":"Business Plan Spreadsheet",
         "description":"Mauris malesuada lacus non arcu interdum tincidunt. Etiam consequat, purus id interdum blandit, odio ex interdum felis, ut aliquet metus turpis id tellus.",
         "skills":"Etiam a hendrerit leo. In fermentum quis libero quis vulputate. Aliquam mollis consectetur enim, et aliquet lorem. Fusce quis placerat urna. Vestibulum pharetra rhoncus",
         "author":"Blaise Balaise",
         "target":"public",
         "uri":"https://docs.google.com/spreadsheets/d/1VYNmqo7lm07q5JyKNw5NFf6QMhmhH9osIPjFwjaMipM/",
         "publication_year":2018,
         "format":{
            "@id":"http://localhost:8000/resources/2/format/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/formats/3/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "conversations":{
            "@id":"http://localhost:8000/resources/2/conversations/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "steps":{
            "@id":"http://localhost:8000/resources/2/steps/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/steps/4/"
               },
               {
                  "@id":"http://localhost:8000/steps/4/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "language":{
            "@id":"http://localhost:8000/languages/1/"
         },
         "fields":{
            "@id":"http://localhost:8000/resources/2/fields/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/fields/7/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "type":{
            "@id":"http://localhost:8000/types/1/"
         },
         "related":{
            "@id":"http://localhost:8000/resources/2/related/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/resources/1/"
               },
               {
                  "@id":"http://localhost:8000/resources/1/"
               },
               {
                  "@id":"http://localhost:8000/resources/5/"
               },
               {
                  "@id":"http://localhost:8000/resources/1/"
               },
               {
                  "@id":"http://localhost:8000/resources/4/"
               },
               {
                  "@id":"http://localhost:8000/resources/5/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "likes":{
            "@id":"http://localhost:8000/resources/2/likes/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "review":null,
         "sharing":"public",
         "@type":"coopstarter:resource",
         "permissions":[
            {
               "mode":{
                  "@type":"view"
               }
            },
            {
               "mode":{
                  "@type":"change"
               }
            },
            {
               "mode":{
                  "@type":"control"
               }
            },
            {
               "mode":{
                  "@type":"delete"
               }
            }
         ]
      },
      {
         "@id":"http://localhost:8000/resources/11/",
         "name":"Another resource",
         "description":"Description toto.",
         "skills":"Learning outcomes",
         "author":"Resource Author",
         "target":"public",
         "uri":"https://www.google.com",
         "publication_year":2003,
         "format":{
            "@id":"http://localhost:8000/resources/11/format/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/formats/2/"
               },
               {
                  "@id":"http://localhost:8000/formats/3/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "conversations":{
            "@id":"http://localhost:8000/resources/11/conversations/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "steps":{
            "@id":"http://localhost:8000/resources/11/steps/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/steps/2/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "language":{
            "@id":"http://localhost:8000/languages/1/"
         },
         "fields":{
            "@id":"http://localhost:8000/resources/11/fields/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/fields/3/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "type":{
            "@id":"http://localhost:8000/types/1/"
         },
         "related":{
            "@id":"http://localhost:8000/resources/11/related/",
            "@type":"ldp:Container",
            "ldp:contains":[
               {
                  "@id":"http://localhost:8000/resources/5/"
               }
            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "likes":{
            "@id":"http://localhost:8000/resources/11/likes/",
            "@type":"ldp:Container",
            "ldp:contains":[

            ],
            "permissions":[
               {
                  "mode":{
                     "@type":"add"
                  }
               },
               {
                  "mode":{
                     "@type":"view"
                  }
               }
            ]
         },
         "review":{
            "@id":"http://localhost:8000/reviews/39/"
         },
         "sharing":"public",
         "@type":"coopstarter:resource",
         "permissions":[
            {
               "mode":{
                  "@type":"view"
               }
            },
            {
               "mode":{
                  "@type":"change"
               }
            },
            {
               "mode":{
                  "@type":"control"
               }
            },
            {
               "mode":{
                  "@type":"delete"
               }
            }
         ]
      }
   ],
   "permissions":[
      {
         "mode":{
            "@type":"add"
         }
      },
      {
         "mode":{
            "@type":"view"
         }
      }
   ],
   "@context":"https://cdn.happy-dev.fr/owl/hdcontext.jsonld"
}

The only difference I can see being the definition of the @id of the nested container, from '' while working to http://localhost:8000/users/1/ presenting an issue. Issue being I am getting no item displayed in my sib-display. I can see the @id should probably be http://localhost:8000/users/1/resources/ instead of '' or http://localhost:8000/users/1/.

Big regression to me as the framework is failing now. Downgrading to 0.6.4 fixed it, but not a solution. Looks like it has been introduced in the 0.6.5 release, as I tested it too and could reproduce then.

Edited by Benoit Alessandroni