{"push_id":1022007709,"size":20,"distinct_size":10,"ref":"refs/heads/buyer-filters-suppliers","head":"55a824453d51949bb009bbd9ece6ba412bd393b0","before":"c445f4647a52f6f9316130ecd237fbaa62825d81","commits":[{"sha":"b54971c54500adebd0a8038a38ca9a0e2f4fda84","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Replace Brief.status column with a property\n\nReplaces the column with a computed property. Setting the status\nnow sets the related date fields instead so that the API clients\ncan still reference `status` field both when reading and updating\nthe brief.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/b54971c54500adebd0a8038a38ca9a0e2f4fda84"},{"sha":"cd71c11bc3b930d5b9c1f0ce92138ec2162dc6e6","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Add ability to filter briefs by status\n\nUses the sqlalchemy hybrid_property with a separate function to be\nused in query expressions.\n\nThis means we need to reimplement the logic twice (both for getting\nthe status property for python and for filtering based on status in\nthe database), but the `.status` property behaves like a regular\ncolumn for the rest of the API code.\n\nhttp://docs.sqlalchemy.org/en/latest/orm/extensions/hybrid.html#module-sqlalchemy.ext.hybrid","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/cd71c11bc3b930d5b9c1f0ce92138ec2162dc6e6"},{"sha":"84ddb3884325f09742b7ff53c95fac2cc2c8f2fa","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Add Brief 'closed' status and applications_closed_at property\n\nAdds a closed date calculated from the brief's published date for\npublished briefs.\n\nSimilar to status, applications_closed_at is a hybrid property and\nhas a separate implementation when used in SQLAlchemy expressions,\nwhich is covered by additional query tests.\n\nClosed date is also checked to return 'closed' status if the brief\napplication period has closed.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/84ddb3884325f09742b7ff53c95fac2cc2c8f2fa"},{"sha":"ccca3d483d56e7ef310b0c68c3a2f17d6b62bd85","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Add Brief.clarification_questions_closed_at property\n\nSets the clarification questions close date, similar to the close\ndate for brief responses.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/ccca3d483d56e7ef310b0c68c3a2f17d6b62bd85"},{"sha":"8565760024692e3a841c89b7af3940cea8c7b8d8","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Add close dates to the Brief.serialize return value","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/8565760024692e3a841c89b7af3940cea8c7b8d8"},{"sha":"90dbc28ae5c7c28940a83d0cb96f6153e0afcfd7","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Add Brief.clarificaiton_quesitons_are_closed property\n\nChecking whether the close date has passed seems like it will be\nthe most common operation related to close dates. When checking\nwhether applications are closed the app can check the brief status\ninstead, but for clarification questions the frontend apps would\nneed to parse the date first.\n\nThis adds a helper property to Brief objects and serialized data\nthat returns true if clarification close date is in the future and\nfalse otherwise.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/90dbc28ae5c7c28940a83d0cb96f6153e0afcfd7"},{"sha":"7317331eef2bf5968cc29b9172fc07d6c3fd1194","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Merge pull request #357 from alphagov/brief-applications-closed-at\n\nBrief applications closed at","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/7317331eef2bf5968cc29b9172fc07d6c3fd1194"},{"sha":"40bb1d1835e0e52169cd1ae054dd27f3552e90da","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Change setup_dummy_briefs helper to support 'closed' status\n\nSets the published_at field directly instead of setting the status\nproperty.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/40bb1d1835e0e52169cd1ae054dd27f3552e90da"},{"sha":"ce9498dc2ce69855fd525e0fc1276166a86020fb","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Don't allow updating or deleting closed briefs\n\nChanges brief status checks to look for non-'draft' briefs instead\nof checking for 'live' status only. This way, 'live' and 'closed'\nbriefs aren't allowed to be updated or removed and the check will\ncover any similar statuses added in the future.\n\nFixes the missing `test_` in test name for live brief delete.","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/ce9498dc2ce69855fd525e0fc1276166a86020fb"},{"sha":"b987d3c494e1df45b0d192f972e5477ef78b5410","author":{"email":"2f9ee2b336682012cb445da6f3a0a52c68caf471@fueledbylemons.com","name":"Alexey Bezhan"},"message":"Merge pull request #364 from alphagov/dont-update-delete-closed-briefs\n\nDon't allow updating or deleting closed briefs","distinct":false,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/b987d3c494e1df45b0d192f972e5477ef78b5410"},{"sha":"9978a99b48750fa29b60db91f9811ec3fb72695c","author":{"email":"ec174e7ddcfb013458485798dcdcbe890dbc653d@digital.cabinet-office.gov.uk","name":"Kev Keenoy"},"message":"Refactor existing filtering of services at list endpoint\n\nMoving filtering out to a util method means that we can reuse the service filtering logic at miultiple endpoints.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/9978a99b48750fa29b60db91f9811ec3fb72695c"},{"sha":"b4e4bad383b3dad90749bdbcd8052c93a7a1b806","author":{"email":"ec174e7ddcfb013458485798dcdcbe890dbc653d@digital.cabinet-office.gov.uk","name":"Kev Keenoy"},"message":"Add filtering of services by lot, location and role","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/b4e4bad383b3dad90749bdbcd8052c93a7a1b806"},{"sha":"de23533fa618f708f029b499d1a66b0757e5e7d7","author":{"email":"ec174e7ddcfb013458485798dcdcbe890dbc653d@digital.cabinet-office.gov.uk","name":"Kev Keenoy"},"message":"Add filtering of services by lot, location and role to get services view","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/de23533fa618f708f029b499d1a66b0757e5e7d7"},{"sha":"ee69773e97f299140269e9407dba581b6a252511","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Add method to set up a single dummy brief","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/ee69773e97f299140269e9407dba581b6a252511"},{"sha":"de509dce2833d9f45df8ced65731fd2c816e9749","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Add supplier brief eligibility route\n\nAdd a route to test whether a supplier is eligible for a given brief.\n\nIf this returns a 200 status then the supplier is eligible for the\nbrief.\nIf this returns any other status (probably a 404) then the supplier is\nnot eligible for the brief.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/de509dce2833d9f45df8ced65731fd2c816e9749"},{"sha":"cff03fcd1b9a5f4641ebaf068266728cb5272ab8","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Change supplier / brief eligibility route to HEAD\n\nGiven that we're not interested in the response we can make the route\nonly accept HEAD requests and skip the response all together.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/cff03fcd1b9a5f4641ebaf068266728cb5272ab8"},{"sha":"47d754b8c5fcfd9d8fc00c0247fc011927f5cad9","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Rename frameworks to framework_slugs\n\nWhat is being passed in is actually framework slugs. When the argument\nframework is used it tends to mean a Framework model object.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/47d754b8c5fcfd9d8fc00c0247fc011927f5cad9"},{"sha":"4ff26cfa09f69ef34b35c2d98312f2b4b52c221a","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Return eligibility in supplier eligible brief route\n\nRelying entirely on HTTP status codes makes the clients more difficult\nand less consistent so we've decided to return the status in the\nresponse.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/4ff26cfa09f69ef34b35c2d98312f2b4b52c221a"},{"sha":"a150707aa4e88c5b7197c764d47ff6f7326f82dd","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"PEP8 fix","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/a150707aa4e88c5b7197c764d47ff6f7326f82dd"},{"sha":"55a824453d51949bb009bbd9ece6ba412bd393b0","author":{"email":"b4fecb59240129920084c607289430d00c83f48c@digital.cabinet-office.gov.uk","name":"Rob Young"},"message":"Fix dummy brief setup for new status handling\n\nStatus is now a derived field based on the published_at timestamp.","distinct":true,"url":"https://api.github.com/repos/alphagov/digitalmarketplace-api/commits/55a824453d51949bb009bbd9ece6ba412bd393b0"}]}