FIXMEs and TODOs - ckan/ckan GitHub Wiki

Rather than add each item as a bug, this list shows the location of all the FIXMEs in CKAN so that those who have any spare time can pick them off.

FIXMEs

  • ckan/authz.py:434: # FIXME: our current pattern is to set context['user'] to
  • ckan/controllers/admin.py:59: '''FIXME: This method is probably not doing what people would expect.
  • ckan/controllers/group.py:390: # FIXME: better error
  • ckan/controllers/package.py:621: ''' FIXME: This is a temporary action to allow styling of the
  • ckan/controllers/user.py:477: # FIXME 403 error for invalid key is a non helpful page
  • ckan/lib/activity_streams.py:55: # FIXME this needs to be translated
  • ckan/lib/app_globals.py:79: # FIXME we should check the css file exists
  • ckan/lib/dictization/model_dictize.py:674: # FIXME why is this just for version 1?
  • ckan/lib/email_notifications.py:177: # FIXME: Raise an exception.
  • ckan/lib/email_notifications.py:198: # FIXME: We are accessing model from lib here but I'm not sure what
  • ckan/lib/email_notifications.py:214: # FIXME: We are accessing model from lib here but I'm not sure what
  • ckan/lib/helpers.py:291: # FIXME this can be written better once the merge
  • ckan/lib/i18n.py:34: # FIXME this wants cleaning up and merging with get_locales_from_config()
  • ckan/lib/search/index.py:229: # FIXME where are we getting these dirty keys from? can we not just
  • ckan/logic/action/create.py:27:# FIXME this looks nasty and should be shared better
  • ckan/logic/action/create.py:861: # FIXME better exception?
  • ckan/logic/action/create.py:1393: # FIXME really package model should have this logic and provide
  • ckan/logic/action/delete.py:362: # FIXME this gets all the packages the user can see which generally will
  • ckan/logic/action/get.py:2534: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:2576: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:2618: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:2650: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:2687: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:2710: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/get.py:3194: # FIXME should we be changing the context like this it seems dangerous
  • ckan/logic/action/get.py:3369: # FIXME: Filter out activities whose subject or object the user is not
  • ckan/logic/action/update.py:593: # FIXME: What if the group was deleted and then activated again?
  • ckan/logic/action/update.py:1100: # FIXME check we are in that org
  • ckan/logic/auth/create.py:181: # FIXME This code is shared amoung other logic.auth files and should be
  • ckan/logic/auth/get.py:21: # FIXME we need to remove this for now we allow site read
  • ckan/logic/auth/get.py:220: # FIXME this is available to sysadmins currently till
  • ckan/logic/auth/get.py:231: # FIXME: context['user'] could be an IP address but that case is not
  • ckan/logic/auth/get.py:241: # FIXME: This should go through check_access() not call is_authorized()
  • ckan/logic/auth/update.py:6:# FIXME this import is evil and should be refactored
  • ckan/logic/auth/update.py:192: # FIXME: We shouldn't have to do a try ... except here, validation should
  • ckan/logic/auth/update.py:232: # FIXME currently only sysadmins can change state
  • ckan/logic/validators.py:512: # FIXME is this the best way to cjeck for state only?
  • ckan/model/package.py:527: # FIXME: What if the object was deleted and then activated
  • ckan/model/package_relationship.py:102: # FIXME do we want a more specific error
  • ckan/model/tag.py:239: # FIXME: This assumes that whenever a PackageTag is changed it's
  • ckan/new_tests.py:1:# FIXME: remove this for ckan 2.5
  • ckan/public/base/javascript/modules/resource-view-filters.js:43: // FIXME: Move this class name to some external variable to keep it DRY
  • ckan/public/base/javascript/modules/resource-view-filters.js:73: // FIXME: Get the CSS class from some external variable
  • ckan/templates/package/read.html:32: {# FIXME why is this here? seems wrong #}
  • ckan/tests/init.py:1:# FIXME: remove everything in this file for ckan 2.5
  • ckan/tests/helpers.py:170: # FIXME: remove this method and switch to using helpers.get_test_app
  • ckan/tests/helpers.py:212:## FIXME: remove webtest_* functions below when we upgrade webtest
  • ckan/tests/legacy/functional/api/test_dashboard.py:175: # FIXME: There should actually be 3 activities here, but when you
  • ckan/tests/legacy/functional/api/test_dashboard.py:188: # FIXME: Shouldn't need the [:3] here, it's because when you follow
  • ckan/tests/legacy/functional/test_activity.py:64: # FIXME This test use an old way to get at the schema to
  • ckan/tests/legacy/functional/test_package.py:262: # FIXME need to pretend to be called by the api
  • ckan/tests/legacy/functional/test_tracking.py:79: # FIXME: Can this be done as more of a functional test where we
  • ckan/tests/legacy/functional/test_tracking.py:457: # FIXME: Have some datasets with different numbers of recent and total
  • ckan/tests/legacy/functional/test_tracking.py:497: # FIXME: Have some datasets with different numbers of recent and total
  • ckan/tests/legacy/functional/test_tracking.py:584: # FIXME: Can this be done as more of a functional test where we
  • ckan/tests/logic/action/test_update.py:70: # FIXME we have to pass the email address and password to user_update
  • ckan/tests/logic/action/test_update.py:163: # FIXME we have to pass the email address to user_update even though
  • ckan/tests/logic/action/test_update.py:224: FIXME: The point of this feature seems to be to prevent people from
  • ckan/tests/logic/action/test_update.py:246: # FIXME we have to pass the email address and password to user_update
  • ckan/tests/logic/action/test_update.py:290: # FIXME: We have to pass email and password even though we're not
  • ckan/tests/logic/action/test_update.py:313: # FIXME: We shouldn't have to put email here since we're not
  • ckan/tests/logic/action/test_update.py:316: # FIXME: We shouldn't have to put password here since we're not

TODOs

  • ckan/controllers/admin.py:174: # TODO deleting the head revision corrupts the edit
  • ckan/controllers/api.py:719: # TODO: We need plugins to be able to register new disallowed names
  • ckan/controllers/feed.py:8:TODO: document paged feeds
  • ckan/controllers/feed.py:21:# TODO fix imports
  • ckan/controllers/feed.py:35:# TODO make the item list configurable
  • ckan/controllers/feed.py:298: # TODO check search params
  • ckan/controllers/feed.py:354: # TODO language
  • ckan/controllers/feed.py:389: unicode(len(json.dumps(pkg))), # TODO fix this
  • ckan/controllers/feed.py:469:# TODO paginated feed
  • ckan/controllers/group.py:792: #TODO: remove
  • ckan/controllers/home.py:36: # TODO: send an email to the admin person (#1285)
  • ckan/controllers/package.py:424: # TODO: remove
  • ckan/controllers/package.py:1109: # TODO: find a nicer way of doing this
  • ckan/controllers/revision.py:47: # TODO: make this configurable?
  • ckan/lib/base.py:153: # TODO should we raise error if genshi filters??
  • ckan/lib/dictization/model_save.py:543: # TODO: Handle activity details.
  • ckan/lib/email_notifications.py:96: # TODO: Here we could generate some smarter content for the emails e.g.
  • ckan/lib/email_notifications.py:210: # TODO: Handle failures from send_email_notification.
  • ckan/lib/helpers.py:1193:# TODO: (?) support resource objects as well
  • ckan/lib/search/query.py:141: # TODO: figure out if they change during run-time.
  • ckan/lib/search/sql.py:29: # TODO: tags ...?
  • ckan/logic/action/get.py:968: ##TODO needs to work with dictization layer
  • ckan/logic/action/get.py:990: # TODO: How to handle this object level authz?
  • ckan/logic/action/get.py:2232: # TODO: should we check for user authentication first?
  • ckan/logic/action/get.py:3193: # TODO: Catch exceptions raised by these *_followee_list() functions?
  • ckan/logic/action/update.py:610: # TODO: Also create an activity detail recording what exactly changed
  • ckan/logic/action/update.py:721: # TODO: Also create an activity detail recording what exactly changed in
  • ckan/migration/versions/005_add_authorization_tables.py:48: # Not Good to use model here. TODO: refactor this.
  • ckan/model/core.py:46: # TODO remove them at a later version
  • ckan/model/domain_object.py:27:# TODO: replace this (or at least inherit from) standard SqlalchemyMixin in vdm
  • ckan/model/group.py:90: """ TODO: Determine if this is useful
  • ckan/model/group.py:100: # TODO do we want to return all related packages or certain ones?
  • ckan/model/group.py:397:#TODO
  • ckan/model/package.py:542: # TODO: Purge all related activity stream items when a model object
  • ckan/model/tag.py:39:# TODO: this has a composite primary key ...
  • ckan/plugins/interfaces.py:1238: ##### TODO: flesh out the docstrings a little more. #####
  • ckan/public/base/javascript/client.js:312: // TODO: Check this is supported by IE7. U believe that the IE
  • ckan/public/base/javascript/modules/resource-view-filters.js:48: // TODO: Remove element from "data" when some select selects it.
  • ckan/public/base/less/group.less:9:// TODO: This should really be on the parent.
  • ckan/public/base/test/vendor/less.js:2109: // TODO: Perform unit conversion before comparing
  • ckan/public/base/test/vendor/mocha.js:2405: // TODO: add to stats
  • ckan/public/base/test/vendor/mocha.js:2442: // TODO: defer
  • ckan/public/base/vendor/bootstrap/less/dropdowns.less:159:// TODO: abstract this so that the navbar fixed styles are not placed here?
  • ckan/public/base/vendor/bootstrap/less/forms.less:242:// TODO v3: Convert .inline to .control-inline
  • ckan/public/base/vendor/jquery.ui.core.js:310: // TODO: determine which cases actually cause this to happen
  • ckan/public/base/vendor/jquery.ui.mouse.js:46: // TODO: make sure destroying one instance of mouse doesn't mess with
  • ckan/public/base/vendor/jquery.ui.sortable.js:207: // TODO: Still need to figure out a way to make relative sorting possible
  • ckan/public/base/vendor/jquery.ui.sortable.js:807: //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
  • ckan/public/base/vendor/jquery.ui.widget.js:106: // TODO: remove support for widgetEventPrefix
  • ckan/public/base/vendor/jquery.ui.widget.js:271: // TODO remove dual storage
  • ckan/public/base/vendor/select2/select2.js:440: // TODO - replace query.page with query so users have access to term, page, etc.
  • ckan/public/base/vendor/select2/select2.js:522: // TODO javadoc
  • ckan/public/base/vendor/select2/select2.js:2533: // TODO validate placeholder is a string if specified
  • ckan/templates/package/base_form_page.html:36: {# TODO: Pass in a list of previously created resources and the current package dict #}
  • ckan/templates/package/snippets/resource_form.html:48: {# TODO: Where do these come from, they don't exist in /package/new_package_form.html #}
  • ckan/tests/legacy/functional/api/test_activity.py:343: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:449: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:539: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:633: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:725: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:784: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:827: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:874: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:941: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1024: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1101: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1178: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1292: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1435: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1483: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1563: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:1984: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_activity.py:2029: # TODO: Test for the correct revision_id value.
  • ckan/tests/legacy/functional/api/test_email_notifications.py:51: # TODO: Check that body contains link to dashboard and email prefs.
  • ckan/tests/legacy/functional/api/test_email_notifications.py:141: # TODO: Assert that Sara has some new activities and has already had
  • ckan/tests/legacy/functional/api/test_package_search.py:242: # TODO: solr is not currently set up to allow partial matches
  • ckan/tests/legacy/functional/test_package.py:253: # TODO restore this test. It doesn't make much sense with the
  • ckan/tests/legacy/functional/test_revision.py:4:# TODO: purge revisions after creating them
  • ckan/tests/legacy/functional/test_tracking.py:394: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:537: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:548: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:559: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:566: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:575: # TODO: Test how /_tracking handles unexpected and invalid data.
  • ckan/tests/legacy/functional/test_tracking.py:635: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:643: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:650: # TODO
  • ckan/tests/legacy/functional/test_tracking.py:657: # TODO
  • ckan/tests/legacy/lib/test_solr_package_search.py:221: # TODO: fix this test
  • ckan/tests/legacy/lib/test_solr_package_search.py:396: # TODO: solr is not currently set up to allow partial matches
  • ckan/tests/legacy/misc/test_sync.py:18:# TODO: Reenable this when sync functionality is in place
  • ckan/tests/legacy/models/test_package.py:149: # TODO: go back to this
  • ckan/tests/legacy/models/test_purge_revision.py:68: # TODO: should youngest_revision be made purge aware
  • ckan/tests/logic/action/test_get.py:785: # TODO: Create related items associated with a dataset and test
  • ckan/tests/logic/action/test_update.py:238: # TODO: Valid and invalid values for the rest of the user model's fields.
  • ckan/tests/logic/test_validators.py:314: # TODO: Test user_name_validator()'s behavior when there's a 'user_obj' in
  • ckan/tests/logic/test_validators.py:594:#TODO: Need to test when you are not providing owner_org and the validator