Skip to content
Gareth Rees edited this page Jan 26, 2023 · 11 revisions

Enable Projects

Set ENABLE_PROJECTS: true in config/general.yml.

Migrate the database bundle exec rake db:migrate if you don't have the projects table.

Run bundle exec rake db:seed to ensure you have the roles necessary for projects.

Create a Project

user = User.find_by(email: 'annie@localhost')
project = Project.create(
  owner: user,
  title: 'My first project',
  briefing: '<p>Collaborate!</p>'
)

# Examples of how to add requests or batches
# Note that your user needs to have these already created
project.batches << user.info_request_batches.last
project.requests << user.info_requests.where(info_request_batch_id: nil).last

# Add some contributors
project.contributors << User.find_by(email: 'bob@localhost')

View a project

Visit /projects/1.

Create a dataset

p = Project.find(1)

ks = Dataset::KeySet.create(resource: p)

k1 = Dataset::Key.create(key_set: ks, title: 'Is there anything of interest in this request?', format: 'text', order: 1)

k2 = Dataset::Key.create(key_set: ks, title: 'Did they attach a spreadsheet?', format: 'boolean', order: 2)

k3 = Dataset::Key.create(key_set: ks, title: 'How many things are there?', format: 'numeric', order: 3)

Note that order must be unique per KeySet.

Generate an invite token

token = SecureRandom.hex(6)
# => "b2b4ae955453"

project.update(invite_token: token)

Visit /p/b2b4ae955453.

Export a leaderboard

See #7542.

Clone this wiki locally