{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":486345,"defaultBranch":"master","name":"django-ordered-model","ownerLogin":"django-ordered-model","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-01-24T14:32:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/82390094?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1707149799.0","currentOid":""},"activityList":{"items":[{"before":"8e5d6413fd6183ba82be7131e4d45e4dbb0dfc70","after":"94d91e56b04af4cf9add7f573f6468d14c0fd8e5","ref":"refs/heads/master","pushedAt":"2024-02-06T15:44:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Relax check that `order_with_respect_to` entries final element must be a `ForeignKey` - it can be any `Field` instance (#298)\n\nThis required re-working the optimisation in c4630dca2bdafd6bac1bd2328081f524953872cf to handle\nOWRT paths ending on a non ForeignKey field.","shortMessageHtmlLink":"Relax check that order_with_respect_to entries final element must b…"}},{"before":"3fa5c9c4923f75cd5b7b2c36f75febfdd79619a1","after":"c5ee4cbc05e98e92b38689fb65034486bafb2731","ref":"refs/heads/issue-298-relax-owt-check","pushedAt":"2024-02-06T15:41:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Relax check that `order_with_respect_to` entries final element must be a `ForeignKey` - it can be any `Field` instance (#298)\n\nThis required re-working the optimisation in c4630dca2bdafd6bac1bd2328081f524953872cf to handle\nOWRT paths ending on a non ForeignKey field.","shortMessageHtmlLink":"Relax check that order_with_respect_to entries final element must b…"}},{"before":"d8cec32154f37a601afedc49423d88cf8daec0b9","after":"3fa5c9c4923f75cd5b7b2c36f75febfdd79619a1","ref":"refs/heads/issue-298-relax-owt-check","pushedAt":"2024-02-06T15:30:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Relax check that `order_with_respect_to` entries final element must be a `ForeignKey` - it can be any `Field` instance (#298)\n\nThis required re-working the optimisation in c4630dca2bdafd6bac1bd2328081f524953872cf to handle\nOWRT paths ending on a non ForeignKey field.","shortMessageHtmlLink":"Relax check that order_with_respect_to entries final element must b…"}},{"before":"adbc9656f18c36cb6ef8101ff57d2a17f3ef1b34","after":"d8cec32154f37a601afedc49423d88cf8daec0b9","ref":"refs/heads/issue-298-relax-owt-check","pushedAt":"2024-02-06T15:23:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Relax check that `order_with_respect_to` entries final element must be a `ForeignKey` - it can be any `Field` instance (#298)\n\nThis required re-working the optimisation in c4630dca2bdafd6bac1bd2328081f524953872cf to handle\nOWRT paths ending on a non ForeignKey field.","shortMessageHtmlLink":"Relax check that order_with_respect_to entries final element must b…"}},{"before":"90bcc46e595e10ce8d573dec207f34bf738ff65c","after":"adbc9656f18c36cb6ef8101ff57d2a17f3ef1b34","ref":"refs/heads/issue-298-relax-owt-check","pushedAt":"2024-02-06T15:17:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"fix _wrt_map() ending in non-FK field","shortMessageHtmlLink":"fix _wrt_map() ending in non-FK field"}},{"before":null,"after":"90bcc46e595e10ce8d573dec207f34bf738ff65c","ref":"refs/heads/issue-298-relax-owt-check","pushedAt":"2024-02-05T16:16:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Relax check that `order_with_respect_to` entries final element must be a `ForeignKey` - it can be any `Field` instance (#298)","shortMessageHtmlLink":"Relax check that order_with_respect_to entries final element must b…"}},{"before":"071da018ac382f46af384936913f83ae898a3cca","after":"8e5d6413fd6183ba82be7131e4d45e4dbb0dfc70","ref":"refs/heads/master","pushedAt":"2024-02-04T07:43:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"add fields.OrderedManyToManyField to order related models by through model Meta\n\nAssuming a 'through' model is provided to the field, it will be queried\nwhile constructing QuerySets for related models and the through Model Meta ordering\nclauses will be applied.\n\nUse in place of fields.ManyToManyField.","shortMessageHtmlLink":"add fields.OrderedManyToManyField to order related models by through …"}},{"before":"492ffea87bc0c7b29d9290ee1780005f02a6c74c","after":"f03d81415704f5551e0b1b3177c9a41b5770dff8","ref":"refs/heads/add-field-ordered-m2m","pushedAt":"2024-02-04T07:40:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"add fields.OrderedManyToManyField to order related models by through model Meta\n\nAssuming a 'through' model is provided to the field, it will be queried\nwhile constructing QuerySets for related models and the through Model Meta ordering\nclauses will be applied.\n\nUse in place of fields.ManyToManyField.","shortMessageHtmlLink":"add fields.OrderedManyToManyField to order related models by through …"}},{"before":"acd8b6294105f4d18abc5a050c36f412a83a7c65","after":"492ffea87bc0c7b29d9290ee1780005f02a6c74c","ref":"refs/heads/add-field-ordered-m2m","pushedAt":"2024-02-04T07:38:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"document OrderedManyToManyField","shortMessageHtmlLink":"document OrderedManyToManyField"}},{"before":"8dd8b5ccf08391fb467d6631036b39f2191e05d9","after":"acd8b6294105f4d18abc5a050c36f412a83a7c65","ref":"refs/heads/add-field-ordered-m2m","pushedAt":"2024-02-04T07:31:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"document OrderedManyToManyField","shortMessageHtmlLink":"document OrderedManyToManyField"}},{"before":"96d6faf86af10b2eb59ec962db1120881cf25aca","after":"8dd8b5ccf08391fb467d6631036b39f2191e05d9","ref":"refs/heads/add-field-ordered-m2m","pushedAt":"2024-02-03T19:16:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"backcompat","shortMessageHtmlLink":"backcompat"}},{"before":"67bbc3a707202d4e201411284df0ca222255d3c7","after":"96d6faf86af10b2eb59ec962db1120881cf25aca","ref":"refs/heads/add-field-ordered-m2m","pushedAt":"2024-02-03T19:10:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"test OrderedManyToManyField for Django version compat","shortMessageHtmlLink":"test OrderedManyToManyField for Django version compat"}},{"before":"fc9e23a7cf4a14b04b332856a626ca2d5d43d9cc","after":"071da018ac382f46af384936913f83ae898a3cca","ref":"refs/heads/master","pushedAt":"2024-02-02T15:46:41.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"test django 4.1 on python 3.11","shortMessageHtmlLink":"test django 4.1 on python 3.11"}},{"before":"48f74edb3e5b481d44a2340a93e870d79a2f91be","after":"fc9e23a7cf4a14b04b332856a626ca2d5d43d9cc","ref":"refs/heads/master","pushedAt":"2024-02-02T15:13:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"disprove issue 196","shortMessageHtmlLink":"disprove issue 196"}},{"before":null,"after":"7f74eaa1c759860c853280279f8b431e9e16a4f6","ref":"refs/heads/issue-196-test","pushedAt":"2024-02-02T15:11:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"disprove issue 196","shortMessageHtmlLink":"disprove issue 196"}},{"before":"4570e28607c79db4f02d01972a2bde3060fbbb19","after":"48f74edb3e5b481d44a2340a93e870d79a2f91be","ref":"refs/heads/master","pushedAt":"2024-01-29T21:20:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"fix build icon","shortMessageHtmlLink":"fix build icon"}},{"before":null,"after":"2f913905ee05b3752dcee30bb4351f95fd808af9","ref":"refs/heads/fix-build-icon","pushedAt":"2024-01-29T21:17:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"fix build icon","shortMessageHtmlLink":"fix build icon"}},{"before":"a970d684e3f15c0d68de5a5615a53416fa38821e","after":"4570e28607c79db4f02d01972a2bde3060fbbb19","ref":"refs/heads/master","pushedAt":"2024-01-29T21:10:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"fix: upstream black change to formatting rules","shortMessageHtmlLink":"fix: upstream black change to formatting rules"}},{"before":null,"after":"a4f2ee76805a1bd60117e0b4b4516284b317a234","ref":"refs/heads/fix-black-fmt","pushedAt":"2024-01-29T21:08:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"fix: upstream black change to formatting rules","shortMessageHtmlLink":"fix: upstream black change to formatting rules"}},{"before":"c834f9ce2ab70f1e0e7a419147db5c8ccb090a9e","after":"a970d684e3f15c0d68de5a5615a53416fa38821e","ref":"refs/heads/master","pushedAt":"2024-01-29T21:06:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Update github actions versions","shortMessageHtmlLink":"Update github actions versions"}},{"before":"40414feb0b7b86b45d7ea65c75cf63d7b58ad50c","after":"c834f9ce2ab70f1e0e7a419147db5c8ccb090a9e","ref":"refs/heads/master","pushedAt":"2023-10-18T22:10:30.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Update ordered_model/__init__.py\n\nCo-authored-by: Chris Shucksmith ","shortMessageHtmlLink":"Update ordered_model/__init__.py"}},{"before":"3df23a82641d05737993063289c8204c9573de2a","after":"40414feb0b7b86b45d7ea65c75cf63d7b58ad50c","ref":"refs/heads/master","pushedAt":"2023-10-18T20:58:28.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"update CHANGES.md","shortMessageHtmlLink":"update CHANGES.md"}},{"before":"2d70fae4bd9c1e1a04a7a22169c4928e2ec32432","after":"3df23a82641d05737993063289c8204c9573de2a","ref":"refs/heads/master","pushedAt":"2023-10-18T20:47:01.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"update CHANGES.md","shortMessageHtmlLink":"update CHANGES.md"}},{"before":"55d04d5d3592226b78d7e56600fa6c9e14506f08","after":"2d70fae4bd9c1e1a04a7a22169c4928e2ec32432","ref":"refs/heads/master","pushedAt":"2023-07-04T10:14:42.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"imomaliev","name":"Sardorbek Imomaliev","path":"/imomaliev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3041675?s=80&v=4"},"commit":{"message":"Merge pull request #304 from solomonhawk/sfh/return-delete\n\nReturn super().delete() in OrderedModel#delete","shortMessageHtmlLink":"Merge pull request #304 from solomonhawk/sfh/return-delete"}},{"before":"5e03a93823c4cded172d37dcfd4743d57b60b0e6","after":"55d04d5d3592226b78d7e56600fa6c9e14506f08","ref":"refs/heads/master","pushedAt":"2023-06-05T16:46:45.809Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"imomaliev","name":"Sardorbek Imomaliev","path":"/imomaliev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3041675?s=80&v=4"},"commit":{"message":"Merge pull request #300 from tpotjj/readme_typo\n\nRemove extra 'your' in README","shortMessageHtmlLink":"Merge pull request #300 from tpotjj/readme_typo"}},{"before":"7b9c89f75acc8216e45931e29ca7c1e360802ff7","after":"5e03a93823c4cded172d37dcfd4743d57b60b0e6","ref":"refs/heads/master","pushedAt":"2023-03-31T10:02:33.197Z","pushType":"push","commitsCount":1,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"rename duplicate test methods #296","shortMessageHtmlLink":"rename duplicate test methods #296"}},{"before":null,"after":"a4ca91649ec07edb00acd648eb44bcf2fbdbdbe1","ref":"refs/heads/add-model-admin-checks","pushedAt":"2023-03-31T09:58:41.439Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"check for move_up_down_links when using OrderedModelAdmin #292","shortMessageHtmlLink":"check for move_up_down_links when using OrderedModelAdmin #292"}},{"before":"a7480d5659e2a11a4361abfebdfb11ec7ce476b6","after":"1b691f86c5f832b382eb2711fdea401e352d202e","ref":"refs/heads/optimise-double-underscore-relations","pushedAt":"2023-03-29T15:13:19.509Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Query ForeignKey id values during load to optimise order_with_respect_to check during save()\n\nThis favours a smaller overall query count over simpler queries.\n\nBy adding attributes during evaluation of the queryset, we can store the prior value of\nForeignKey relations, for the cost of a join for each entry within\norder_with_respect_to (nested joins if LOOKUP_SEPARATOR (__) is used).\n\nThe fetched attibutes are not available during OrderedModel.__init__() so we defer creation\nof self._original_wrt_map until save(). Since this reads from attributes it no longer\ncauses any additional queries.\n\nThis seems to balance correctness in the case of modifying the fields you are ordered\nwith respect to, against minimising extra queries during either get() or save()\noperations, and does not require the full related object to be fetched to detect the change.","shortMessageHtmlLink":"Query ForeignKey id values during load to optimise order_with_respect…"}},{"before":"3aaf7fae929cfb18558c3cfc554ebcff602f3098","after":"a7480d5659e2a11a4361abfebdfb11ec7ce476b6","ref":"refs/heads/optimise-double-underscore-relations","pushedAt":"2023-03-29T14:55:58.698Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"Query ForeignKey id values during load to optimise order_with_respect_to check during save()\n\nThis favours a smaller overall query count over simpler queries.\n\nBy adding attributes during evaluation of the queryset, we can store the prior value of\nForeignKey relations, for the cost of a join for each entry within\norder_with_respect_to (nested joins if LOOKUP_SEPARATOR (__) is used).\n\nThe fetched attibutes are not available during OrderedModel.__init__() so we defer creation\nof self._original_wrt_map until save(). Since this reads from attributes it no longer\ncauses any additional queries.\n\nThis seems to balance correctness in the case of modifying the fields you are ordered\nwith respect to, against minimising extra queries during either get() or save()\noperations, and does not require the full related object to be fetched to detect the change.","shortMessageHtmlLink":"Query ForeignKey id values during load to optimise order_with_respect…"}},{"before":null,"after":"3aaf7fae929cfb18558c3cfc554ebcff602f3098","ref":"refs/heads/optimise-double-underscore-relations","pushedAt":"2023-03-29T12:03:04.989Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shuckc","name":"Chris Shucksmith","path":"/shuckc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1188286?s=80&v=4"},"commit":{"message":"add failing test for #293","shortMessageHtmlLink":"add failing test for #293"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD84Vs8QA","startCursor":null,"endCursor":null}},"title":"Activity · django-ordered-model/django-ordered-model"}