Custom Query (2152 matches)
Results (286 - 288 of 2152)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#2204 | fixed | [super] Related (Stuff) Extension | ross | rgrp |
Description |
This is a reworking of the existing apps extension. Initial proposal at http://wiki.ckan.org/Proposals#Apps_in_CKAN and http://wiki.ckan.org/Proposals#References.2FLinks_in_CKAN NamingWhat do we call this extension?
Proposal"Related Stuff": Apps as in an application (website/service/tool) that uses this dataset (as in Apps and Ideas extension)
ImplementationNew table named Related with following structure || id (int) || type || title || description (markdown) || image_url || owner_id || url || created (timestamp)
Related2Dataset (note that related_id, dataset_id tuple should be unique). This allows for m2m connections. If a given related item is only with one dataset this could be simplified. May contain status so dataset owner can turn this on/off. || id || dataset_id || related_id || status status should be used to allow for a dataset owner (for dataset_id) to de-activate the relationship between the dataset and the related. Url
/dataset/{id}/related <- list
/dataset/{id}/related/{id} (optional) /dataset/{id} will have a Related tab (with bubble with count).
/related/{id}/edit AuthorizationAddition of related item be considered orthogonal to datasets (and hence with separate authorization i.e. i can add the info that site X uses dataset Y without needing permission to edit dataset Y). Thus any logged in user could add a Related item. We set the owner of the related item to creating user and going forward only that user or a sysadmin can update or delete. NB: we could have a system where datasets owners have to approve related items before they show up next to their dataset. This would add substantial complexity so I propose we leave out of phase 1. Tasks and estimates {7.5d}[x] Model + Migration for Related table. {0.75d} [x] Controller for Related (or relevant sections in Package controller). {0.75d} [x] Routing setup. {0.25d} [x] Schema for related. {0.5d} [x] Logic layer actions. {1.0d} [x] Auth (default + publisher). {0.5d} [x] Templates + Dataset changes (new tab etc). {1.0d} [x] JS Application for adding Related objects in a modal. {1.0d} [x] Testing. {0.75d} [x] Dataset owner disabling of Related (via M2M table). {0.5d}
[x] Documentation. {0.25d} |
|||
#961 | fixed | [super] Refactoring of forms, validation and model synchronization | kindly | rgrp |
Description |
This is a meta-ticket to hold all of the work on refactoring forms, validation and model-synchronization in CKAN. ckan-dev thread: http://lists.okfn.org/pipermail/ckan-dev/2011-January/000180.html The IssueFrom #926: The current formalchemy setup conflates view, controller and model code in a way that makes it hard to debug and customise. From http://lists.okfn.org/pipermail/ckan-dev/2011-January/000181.html: ... FormAlchemy, in retrospect, was probably a mistake as it merges too much model/validation/form generation into one thing. At least 3 functions involved [in this area]:
Related Tickets
|
|||
#1094 | duplicate | [super] Refactor the Auth System | thejimmyg | thejimmyg |
Description |
Here are some proposed changes related to CKAN's authorization system - they aren't very big, but should provide for some forthcoming use cases including #787. Two man reasons for the changes are:
The first two changes revolve around the is_authorized method, which is called by the logic layer to ask whether a particular user (e.g. Bob) is allowed to do a certain action (e.g. edit) on a certain object (e.g. Package).
which *overrides* the current call with its own implementation (note: in previous discussions we have considered allowing a chain of plugins, no longer!) Reason: authorization can be completely delegated to another system (or partially)
but for action=create_package, the object supplied is System, and for action=edit the object supplied is the package. Instead action should always be the string name of a function in the logic layer and object should always be the object passed to that function. This means our auth system is based around the actual actions we are performing (rather than a model them) and with the actual data that forms the action (rather than a related object). You never need a System object in this model.
Although this sounds a bit radical we already have auth extensions. Read-only CKAN Web UI(Additional requirement from #764) Whilse using CKAN web interface, you are not tempted to edit stuff:
|