Please enter information describing your organisation.
"
+ top_banner_help_text_html: "Please enter information you would like your users to see while sign in. Do not enter more than 165 characteres.
"
+ template_desc_help_text_html: "Enter a description that helps you to differentiate between templates e.g. if you have ones for different audiences.
"
+ abbre_help_text: "Please enter an abbreviation to your organisation's name."
+ target_url_help_text: "Please enter a web address valid."
+ name_help_text: "Please enter your organisation's name."
+ guidance_label: "Guidance"
+ templates_label: "Templates"
+ add_option_label: "Add option"
+ add_question_label: "Add question"
+ add_section_label: "Add section"
+ remove_option_label: "Remove"
+ option_order_label: "Order"
+ option_text_label: "Text"
+ option_default_label: "Default"
+ guidance:
+ guidance_list: "Guidance list"
+ text_label: "Text"
+ themes_label: "Themes"
+ question_label: "Question"
+ by_theme_or_by_question: "Should this guidance apply:"
+ by_themes_label: "by themes"
+ by_question_label: "by question"
+ template: "Template"
+ templates: "Templates"
+ guidance_group_label: "Guidance group"
+ published: "Published"
+ created: "Created"
+ last_updated: "Last updated"
+ actions: "Actions"
+ add_guidance: "Add guidance"
+ created_message: "Guidance was successfully created."
+ updated_message: "Guidance was successfully updated."
+ help_text_html: "Please enter guidance text for this theme.
"
+ new_label: "New guidance"
+ view_all_guidance: "View all guidance"
+ text_help_text_html: "Enter your guidance here. You can include links where needed."
+ apply_to_help_text_html: "Decide whether your guidance should display by themes (default) or if it only pertains to a specific question in one of the funder templates."
+ by_themes_help_text_html: "Select which theme(s) this guidance relates to."
+ by_question_help_text_html: "Select the relevant template, phase, version, section and question from the following dropdown options to define which specific question this guidance should display on."
+ guidance_group_select_help_text_html: "Select which group this guidance relates to."
+ guidance_text_html: "You can write pieces of guidance to be displayed by theme (e.g. generic guidance on storage and backup that should present across the board) or you can write guidance for specific questions. Writing generic guidance by theme saves you time and effort as your advice will be automatically displayed across all templates rather than having to write guidance to accompany each.
+ You will usually want your guidance to display on all templates, however there may be cases where you only want it to show for specific funders e.g. if you have specific instructions for applicants to BBSRC for example. This can be set too if needed.
"
+ delete_message_html: "You are about to delete '%{guidance_summary}'. Are you sure?"
+ guidance_group:
+ add_guidance_group: "Add guidance group"
+ guidance_group_list: "Guidance group list"
+ name_label: "Name"
+ subset: "Optional subset"
+ subset_eg: "e.g. School/ Department"
+ all_temp: "All templates"
+ help_text_add: "Please enter the group title"
+ subset_option_help_text: "If the guidance is only meant for a subset of users e.g. those in a specific college or institute, check this box. Users will be able to select to display this subset guidance when answering questions in the 'create plan' wizard."
+ template_help_text_html: "Select which templates you want the guidance to display on. This will usually be all templates."
+ title_help_text_html: "Add an appropriate name for your guidance group e.g. Glasgow guidance. This name will be used to tell the end user where the guidance has come from e.g. 'Glasgow Guidance on Metadata'"
+ guidance_group_text_html: "First create a guidance group. This could be institution wide or a subset e.g. a particular College / School, Institute or department. When you create guidance you'll be asked to assign it to a guidance group.
"
+ delete_message: "You are about to delete '%{guidance_group_name}'. This will affect guidance. Are you sure?"
+ created_message: "Guidance group was successfully created."
+ updated_message: "Guidance group was successfully updated."
+ destroyed_message: "Guidance group was successfully deleted."
+ templates:
+ create_template: "Create a template"
+ new_label: "New template"
+ template_details: "Template details"
+ edit_details: "Edit template details"
+ view_all_templates: "View all templates"
+ funders_temp: "Funders templates"
+ title_help_text: "Please enter a title for your template."
+ section_title_help_text: "Please enter section title"
+ help_text_html: "Please enter template description for this theme.
"
+ create_own_template_text_html: "If you wish to add an institutional template for a Data Management Plan, use the 'create template' button. You can create more than one template if desired e.g. one for researchers and one for PhD students.
+ Your template will be presented to users within your institution when no funder templates apply. If you want to add questions to funder templates use the 'customise template' options below.
"
+ create_new_template_text_html: "To create a new template, first enter a title and description. Once you have saved this you will be presented with options to add one or more phases.
"
+ desc_help_text_html: "Enter a description that helps you to differentiate between templates e.g. if you have ones for different audiences"
+ own_temp: "Own templates"
+ add_phase_label: "Add new phase +"
+ view_phase_label: "View phase"
+ edit_phase_label: "Edit phase"
+ back_to_edit_phase_label: "Back to edit view"
+ edit_phase_details_label: "Edit phase details"
+ phase_details_label: "Phase details"
+ phase_order_label: "Order of display"
+ phase_details_text_html: "Here you set the title that users will see. If you intend to have multiple phases for you DMP, this should be clear in the title and description.
Enter a basic description. This could be a summary of what is covered in the section or instructions on how to answer. This text will be displayed in the coloured banner once a section is opened to edit.
"
+ section_number_help_text: "This allows you to order sections."
+ add_question: "Add question"
+ created: "Created at"
+ last_updated: "Last updated"
+ published_label: "Published"
+ cannot_publish: "Please ensure you have created at least one phase with a published version."
+ title_label: "Title"
+ desc_label: "Description"
+ actions: "Actions"
+ customise: "Customise"
+ edit_customisation: "Edit customisation"
+ created_message: "Information was successfully created."
+ updated_message: "Information was successfully updated."
+ destroyed_message: "Information was successfully deleted."
+ section_delete_message: "You are about to delete '%{section_title}'. This will affect questions linked to this section. Are you sure?"
+ versions:
+ clone_versions_label: "Make big changes"
+ edit_versions_label: "Make small changes"
+ edit_label: "Edit"
+ versions_text_html: "A first version is created automatically. If you want to make major changes to published versions later (e.g. add section or questions) please create a new version. If you only want to fix typos or make small changes that do not alter meanings, edit the current version."
+ desc_help_text_html: "Enter a basic description as an internal reference to describe the difference between versions"
+ delete_message: "You are about to delete '%{version_title}'. This will affect sections and questions linked to this version. Are you sure?"
+ edit_alert_label: "Edit alert"
+ edit_alert_text: "Please consider the kind of changes you are about to make as this plan is already published and might be in use"
+ questions:
+ question_text_label: "Question text"
+ question_number_label: "Question number"
+ question_edit_button: "Edit question"
+ question_delete_button: "Delete question"
+ answer_format_label: "Answer format"
+ option_comment_display_checkbox: "Display additional comment area."
+ option_comment_display: "Additional comment area will be displayed."
+ option_comment_hide: "No additional comment area will be displayed."
+ example_answer_label: "Example of answer"
+ suggested_answer_label: "Suggested answer"
+ suggested_answer_help_text_html: "You can add an example or suggested answer to help users respond. These will be presented above the answer box and can be copied/ pasted."
+ suggested_or_example_answer_label: "Suggested answer/ Example"
+ suggested_or_example_answer_button: "Add suggested answer/ example"
+ edit_suggested_answer_button: "Edit suggested answer/ example"
+ delete_suggested_answer_message: "You are about to delete a suggested answer/ example for '%{question_text}'. Are you sure?"
+ default_value_label: "Default value"
+ number_help_text: "This allows you to order questions within a section."
+ question_format_help_text_html: "You can choose from:Select themes that are relevant to this question.
+ This allows your generic institution-level guidance to be drawn in, as well as that from other sources e.g. the DCC or any Schools/Departments that you provide guidance for.
+ You can select multiple themes by using the CTRL button.
"
+ default_answer_label: "Default answer"
+ guidance_label: "Guidance"
+ question_guidance_help_text_html: "Enter specific guidance to accompany this question. If you have guidance by themes too, this will be pulled in based on your selections below so it's best not to duplicate too much text."
+ delete_message: "You are about to delete '%{question_text}'. Are you sure?"
+ question_options_help_text_html: "Enter any options that you wish to display. If you want to pre-set one option as selected, check the default box."
+
+
+
+
+ helpers:
+ home: "Home"
+ return_home: "Return to the home page"
+ admin_area: "Super admin area"
+ edit_profile: "Edit profile"
+ view_plans_label: "View plans"
+ create_plan_label: "Create plan"
+ about_us_label: "About"
+ roadmap_label: "Roadmap"
+ help_label: "Help"
+ contact_label: "Contact"
+ jisc: "The DCC is funded by"
+
+ sign_in: "Sign in"
+ sign_out: "Sign out"
+ sign_up: "Sign up"
+ sign_up_text: "New to DMPonline? Sign up today."
+ signed_in: "Signed in as "
+ institution_sign_in_link: "Or, sign in with your institutional credentials"
+ institution_sign_in: " (UK users only)"
+
+ user_name: "Email address"
+ email: "Email"
+ valid_email: "You must enter a valid email address."
+ user_details_text_html: "Please note that your email address is used as your username. If you change this, remember to use your new email address on sign in.
"
+ user_details_paragraph_html: "You can edit any of the details below."
+ remember_me: "Remember me"
+ org_not_listed: "My organisation isn't listed."
+
+ password: "Password"
+ current_password: "Current password"
+ new_password: "New password"
+ password_conf: "Password confirmation"
+ change_password: "Change your password"
+ forgot_password: "Forgot your password?"
+ password_too_small: "Your password must contain at least 8 characters."
+ password_no_match: "This must match what you entered in the previous field."
+ no_pass_instructions: "Didn't receive confirmation instructions?"
+ no_unlock_instructions: "Didn't receive unlock instructions?"
+ send_password_info: "Reset password instructions"
+ edit_password_info: "If you would like to change your password please complete the following fields."
+ accept_terms_html: " I accept the You are about to unlink DMPonline of your institutional credentials, would you like to continue?
"
+
+
+ section_label: "Section"
+ sections_label: "Sections"
+ questions_label: "Questions"
+ answers_label: "Answers"
+ answer_questions: "Answer questions"
+ last_edit: "Last edited"
+ select_action: "Select an action"
+ answered_by: "Answered "
+ answered_by_part2: " by "
+ suggested_answer: "Suggested answer"
+ suggested_example: "Example answer"
+ notanswered: "Not answered yet"
+ noquestionanswered: "No questions have been answered"
+ guidance: "Guidance"
+ policy_expectations: "Policy Expectations"
+ export: "Export"
+ guidance_accordion_label: "Guidance"
+ add_comment_accordion_label: "Share note"
+ comment_accordion_label: "Notes"
+
+ comments:
+ add_comment_label: "Add note"
+ add_comment_text: "Share note with collaborators"
+ comment_label: "Note"
+ comments_label: "Notes"
+ view_label: "View"
+ edit_label: "Edit"
+ retract_label: "Remove"
+ clear_label: "Remove"
+ commented_by: "Noted by:"
+ archive_own_comment_question: "Are you sure you would like to remove this note?"
+ archive_own_comment_button_label: "Remove"
+ archive_comment_question: "Are you sure you would like to remove this note?"
+ archive_comment_button_label: "Remove"
+ clear_by: "Note removed by"
+ retracted: "Note removed by you"
+
+
+ org_type:
+ funder: "Funder"
+ institution: "Institution"
+ project: "Project"
+ organisation: "Organisation"
+ org_name: "Organisation name"
+ school: "School"
+ publisher: "Publisher"
+ other_guidance: "Other guidance"
+ template: "Template"
+ templates: "Templates"
+ child: "Unit"
+ other_org_help_text: "Please enter the name of your organisation."
+
+
+ project:
+ create: "Create plan"
+ edit: "Edit plan details"
+ grant_title: "Grant number"
+ grant_help_text: "Grant reference number if applicable [POST-AWARD DMPs ONLY]"
+ not_applicable: "Not applicable/not listed."
+ multi_templates: "There are a number of possible templates you could use. Please choose one."
+ project_name: "Plan name"
+ my_project_name: "My plan"
+ success: "Plan was successfully created."
+ principal_investigator: "Principal Investigator/Researcher"
+ principal_investigator_help_text: "Name of Principal Investigator(s) or main researcher(s) on the project."
+ principal_investigator_id: "Principal Investigator/Researcher ID"
+ principal_investigator_id_help_text: "E.g ORCID http://orcid.org/."
+ funder_help_text: "Research funder if relevant"
+ funder_name: "Funder name"
+ project_question_desc_label: "Summary about the questions"
+ tab_plan: "Plan details"
+ tab_export: "Export"
+ export_text_html: "From here you can download your plan in various formats. This may be useful if you need to submit your plan as part of a grant application.
+Select what format you wish to use and click to 'Export'.
"
+ questions_answered: "questions answered"
+ not_saved_answers_text_alert: "You have altered answers but have not saved them:"
+ not_saved_answers_confirmation_alert: "Would you like to save them now?"
+ not_saved_answers_header: "Unsaved answers"
+ project_data_contact: "Plan data contact"
+ project_data_contact_help_text: "Name (if different to above), telephone and email contact details"
+ project_name_help_text: "If applying for funding, state the name exactly as in the grant proposal."
+ project_desc_help_text_html: "The table below lists the plans that you have created, and any that have been shared with you by others.These can be edited, shared, exported or deleted at anytime.
"
+ project_details_text_html: "This page gives you an overview of your plan. It tells what your plan is based on and gives an overview of the questions that you will be asked."
+ project_details_editing_text_html: "Please fill in the basic project details below and click 'Update' to save"
+ confirm_delete_text: "Are you sure you wish to delete this plan? If the plan is being shared with other users, by deleting it from your list, the plan will be deleted from their plan list as well"
+ confirmation_text: "Confirm plan details"
+ confirmation_text_desc: "Where your funder or institution doesn't have specific requirements (or if you left these options blank), you will see the DCC Checklist. This offers a generic set of DMP questions and guidance. For more details see: You can give other people access to your plan here. There are three permission levels.
Add each collaborator in turn by entering their email address below, choosing a permission level and clicking \"Add collaborator\".
Those you invite will receive an email notification that they have access to this plan, inviting them to register with DMPonline if they don't already have an account. A notification is also issued when a user's permission level is changed.
"
+ collaborators: "Collaborators"
+ add_collaborator: "Add collaborator"
+ add: "Add"
+ permissions: "Permissions"
+ permissions_desc: "Editors can contribute to plans. Co-owners have additional rights to edit plan details and control access."
+ remove: "Remove user access"
+ confirmation_question: "Are you sure?"
+ owner: "Owner"
+ co_owner: "Co-owner"
+ edit: "Edit"
+ read_only: "Read only"
+ locked_section_text: "This section is locked for editing by "
+ create_page:
+ title: "Create a new plan"
+ desc_html: "Please select from the following drop-downs so we can determine what questions and guidance should be displayed in your plan.
+ If you aren't responding to specific requirements from a funder or an institution, select here to write a generic DMP based on the most common themes.
"
+ default_template: "Default DMP"
+ funders_question: "If applying for funding, select your research funder."
+ funders_question_description: "Otherwise leave blank."
+ other_funder_name_label: "Name of funder, if applicable."
+ institution_question: "To see institutional questions and/or guidance, select your organisation."
+ institution_question_description: "You may leave blank or select a different organisation to your own."
+ other_guidance_question: "Tick to select any other sources of guidance you wish to see."
+ configure: "Configure"
+ columns:
+ name: "Name"
+ owner: "Owner"
+ shared: "Shared?"
+ template_owner: "Template Owner"
+ last_edited: "Last edited"
+ identifier: "Identifier"
+ grant_number: "Grant number"
+ principal_investigator: "Principal Investigator / Researcher"
+ data_contact: "Plan data contact"
+ description: "Description"
+ filter:
+ placeholder: "Filter plans"
+ submit: "Filter"
+ cancel: "Cancel"
+ no_matches: "No plans match '%{filter}'"
+
+ plan:
+ export:
+ pdf:
+ question_not_answered: Question not answered.
+ generated_by: This document was generated by DMPonline (http://dmponline.dcc.ac.uk)
+ space_used: "approx. %{space_used}% of available space used (max %{num_pages} pages)"
+ project_name: "Project Name"
+ project_identifier: "Project Identifier"
+ grant_title: "Grant Title"
+ principal_investigator: "Principal Investigator / Researcher"
+ project_data_contact: "Project Data Contact"
+ project_description: "Description"
+ funder: "Funder"
+ institution: "Institution"
+
+ settings:
+ title: "Settings"
+ projects:
+ title: "Settings - My plans"
+ desc: "The table below lists the available columns that can be shown on the 'My plans' list. Choose which you would like to appear."
+ errors:
+ no_name: "'name' must be included in column list."
+ duplicate: "Duplicate column name. Please only include each column once."
+ unknown: "Unknown column name."
+ plans:
+ title: Plan title
+ reset: "Reset"
+ custom_formatting: "(Using custom PDF formatting values)"
+ template_formatting: "(Using template PDF formatting values)"
+ default_formatting: "(Using default PDF formatting values)"
+ included_elements: "Included Elements"
+ pdf_formatting: "PDF Formatting"
+ font_face: "Face"
+ font_size: "Size"
+ margin: "Margin"
+ margins:
+ top: "Top"
+ bottom: "Bottom"
+ left: "Left"
+ right: "Right"
+ max_pages: "Maximum number of pages"
+ errors:
+ missing_key: "A required setting has not been provided"
+ invalid_margin: "Margin value is invalid"
+ negative_margin: "Margin cannot be negative"
+ unknown_margin: "Unknown margin. Can only be 'top', 'bottom', 'left' or 'right'"
+ invalid_font_size: "Invalid font size"
+ invalid_font_face: "Invalid font face"
+ unknown_key: "Unknown formatting setting"
+ invalid_max_pages: "Invalid maximum pages"
+
+ about_page:
+ title: "About DMPonline"
+ tab_1: "Background"
+ tab_2: "Latest news"
+
+ body_text_tab_1_html: "Funding bodies increasingly require their grant-holders to produce Data Management Plans(DMP), both during the bid-preparation stage and after funding has been secured. DMPonline has been produced by the UK's Digital Curation Centre to help research teams respond to this requirement, and any expectations that their institution or others may apply.
+ There are a number of templates within the tool that represent the requirements of different funders and institutions. Users are asked three questions at the outset so we can determine the appropriate template to display (e.g. the ESRC template when applying for an ESRC grant). Guidance is provided to help you interpret and answer the questions. This guidance is provided by researcher funders, universities and disciplines.
+
+ If you have an account please sign in and start creating or editing your DMP.
+ We are constantly improving the user interface and functionality of DMPonline.
+ If you would like to contribute with feedback and suggestions, please contact us by emailing
+ dmponline@dcc.ac.uk. You can also report bugs and request new features directly on GitHub
+ When you login to DMPonline you will be directed to the 'My plans' page. From here you can edit, share, export or delete any of your plans. You will also see plans that have been shared with you by others.
+ To create a plan, click the 'Create plan' button from the 'My plans' page or the top menu. Select options from the drop-down menus and tickboxes to determine what questions and guidance you should be presented with. Confirm your selection by clicking 'Yes, create plan'
+ The tabbed interface allows you to navigate through different functions when editing your plan.
+ When viewing any of the question tabs, you will see the different sections of your plan displayed. Click into these in turn to answer the questions. You can format your responses using the text editing buttons.
+ Guidance is displayed in the right-hand panel. Click the '+' symbol to view this.
+ Remember to 'save' your responses before moving on.
+ Insert the email address of any collaborators you would like to invite to read or edit your plan. Set the level of permissions you would like to grant them via the drop-down options and click to 'Add collaborator'
+ From here you can download your plan in various formats. This may be useful if you need to submit your plan as part of a grant application. Choose what format you would like to view/download your plan in and click to export. When you login to DMPonline you will be directed to the 'My plans' page. From here you can edit, share, export or delete any of your plans. You will also see plans that have been shared with you by others.
+ DMPonline is provided by the Digital Curation Centre. You can find out more about us on our website. If you would like to contact us about DMPonline, please enter your query in the form below or email dmponline@dcc.ac.uk.
"
+ github_text_html: "If you have a feature request or think you have found a bug, please check out the list of issues on GitHub. If your issue isn't listed there, please add it; if it is, please add a comment if you have more information or just to let us know how important it is to you. This will help us to help us prioritise future developments.
"
+ address_text_html: "Tel. +44 (0) 131 651 1239
+ DMPonline has an active and growing user base, and we are grateful to the members who suggest ideas for new and improved features. We regularly take stock of how we can expand our service to meet these evolving needs.
+ A number of enhancements and new features are planned. These include:
+ We are currently revising the timeframes for our roadmap due to staff changes and pending recruitment. We expect to have a new version online by early 2016.
+ To make sure we’re on the right track, we work to develop our roadmap in conjunction with our DMPonline user group. If you would like to help shape our future plans, please join the group. More information on how you can engage with us is available under the 'Get involved' tab.
+
+ The current version of DMPonline is 4.2. This was released in August 2015 and included Institutional branding, optional guidance for funders, improvements to the question area, improvements to the admin interface, GitHub pull requests, new seed file, and an update of the gemfile.
+ The previous version of DMPonline is 4.1. This was released in May 2015 and included a comment feature, improved guidance on signing in with institutional credentials, enhanced deployment guidance and proposed methods for internationalisation. Full details can be found in the release note and associated documents.
+ DMPonline is developed and maintained by the UK Digital Curation Centre. We’re a small team, and are happy to collaborate with others. There are various ways you can get involved:
+ We want to engage with our users more actively so invite you to join the user group. We run a listserv for the group that you can request to join. We also host periodic meetings to consult on our plans
+ Our user group sessions are usually focused around a certain topic (e.g. fleshing out use cases for an API) so invites are sent based on your areas of expertise. It is also helpful for us to know what type of user you are –researcher, institutional administrator, librarian, developer, funder etc.
+ Please let us know your interests and share your ideas for future developments via the mailing list so the community as a whole can feedback on them.
+
+ DMPonline can be customised by institutions and disciplines. You can add templates for users in your organisation and tailored guidance that explains local support and services. Example answers can also be offered to help users understand what to write in a Data Management Plan. To do this you’ll need to request admin access, so please email us on dmponline@dcc.ac.uk.
+ DMPonline is a Ruby on Rails application. The source code is made available under a GNU Affero General Public License. This permits others to reuse the code freely, but obligates you to share the source code for any extensions in the same way. Please inform us if you install an instance of DMPonline and offer your contributions back to the community.
+ If you install an instance of DMPonline we require that you credit the DCC as originators of the tool. We recommend that the acknowledgement takes the form of the DMPonline logo with a link back to the DCC-hosted version of the tool.
+ We are willing to work with external developers to add new features to the tool. We are also open to delivering new features on a chargeable basis. If there are extensions you would like to see prioritised and have resource to support additional developer effort, please contact us on dmponline@dcc.ac.uk to negotiate terms.
+
+ We are impressed by the uptake of DMPonline both in the UK and internationally and are really keen to hear how you are using the tool and promoting it in your context. We are aware that others have run training courses, developed guidance materials and advocated use of the tool. Please notify us of this as it helps to show impact.
+ We are currently investigating options for revenue generation. This will help us serve the increased demand more effectively and safeguard the long-term sustainability of DMPonline. Plans will be released for consultation soon but we also welcome your suggestions on how best to support our work.
"
+
+ terms_page:
+ title: "Terms of use"
+ body_text_html: "Give a brief description of the data, including any existing data or third-party sources that will be used, in each case noting its content, type and coverage. Outline and justify your choice of format and consider the implications of data format and data volumes in terms of storage, backup and access.
",
+ themes: ["Theme 1", "Theme 2"]
+ },
+ "How will the data be collected or created?" => {
+ text: "How will the data be collected or created?",
+ section: "Data Collection",
+ number: 2,
+ guidance: " Outline how the data will be collected/created and which community data standards (if any) will be used. Consider how the data will be organised during the project, mentioning for example naming conventions, version control and folder structures. Explain how the consistency and quality of data collection will be controlled and documented. This may include processes such as calibration, repeat samples or measurements, standardised data capture or recording, data entry validation, peer review of data or representation with controlled vocabularies.
",
+ themes: ["Theme 3"]
+ },
+ "What documentation and metadata will accompany the data?" => {
+ text: "What documentation and metadata will accompany the data?",
+ section: "Documentation and Metadata",
+ number: 1,
+ guidance: " Describe the types of documentation that will accompany the data to help secondary users to understand and reuse it. This should at least include basic details that will help people to find the data, including who created or contributed to the data, its title, date of creation and under what conditions it can be accessed.
Documentation may also include details on the methodology used, analytical and procedural information, definitions of variables, vocabularies, units of measurement, any assumptions made, and the format and file type of the data. Consider how you will capture this information and where it will be recorded. Wherever possible you should identify and use existing community standards.
",
+ themes: ["Theme 1", "Theme 4"]
+ },
+ "How will you manage any ethical issues?" => {
+ text: "How will you manage any ethical issues?",
+ section: "Ethics and Legal Compliance",
+ number: 1,
+ guidance: " Ethical issues affect how you store data, who can see/use it and how long it is kept. Managing ethical concerns may include: anonymisation of data; referral to departmental or institutional ethics committees; and formal consent agreements. You should show that you are aware of any issues and have planned accordingly. If you are carrying out research involving human participants, you must also ensure that consent is requested to allow data to be shared and reused.
",
+ themes: ["Theme 4"]
+ },
+ "How will you manage copyright and Intellectual Property Rights (IPR) issues?" => {
+ text: "How will you manage copyright and Intellectual Property Rights (IPR) issues?",
+ section: "Ethics and Legal Compliance",
+ number: 2,
+ guidance: " State who will own the copyright and IPR of any data that you will collect or create, along with the licence(s) for its use and reuse. For multi-partner projects, IPR ownership may be worth covering in a consortium agreement. Consider any relevant funder, institutional, departmental or group policies on copyright or IPR. Also consider permissions to reuse third-party data and any restrictions needed on data sharing.
",
+ themes: ["Theme 1"]
+ },
+ "How will the data be stored and backed up during the research?" => {
+ text: "How will the data be stored and backed up during the research?",
+ section: "Storage and Backup",
+ number: 1,
+ guidance: " State how often the data will be backed up and to which locations. How many copies are being made? Storing data on laptops, computer hard drives or external storage devices alone is very risky. The use of robust, managed storage provided by university IT teams is preferable. Similarly, it is normally better to use automatic backup services provided by IT Services than rely on manual processes. If you choose to use a third-party service, you should ensure that this does not conflict with any funder, institutional, departmental or group policies, for example in terms of the legal jurisdiction in which data are held or the protection of sensitive data.
",
+ themes: ["Theme 2"]
+ },
+ "4a: Preserving Your Data" => {
+ text: "4a: Preserving Your Data",
+ section: "4: Preservation, Sustainability and Use",
+ number: 1,
+ guidance: "Preservation of digital outputs is necessary in order for them to endure changes in the technological environment and remain potentially re-usable in the future. In this section you must state what, if any, digital outputs of your project you intend to preserve beyond the period of funding.
The length and cost of preservation should be proportionate to the value and significance of the digital outputs. If you believe that none of these should be preserved this must be justified, and if the case is a good one the application will not be prejudiced.
You must consider preservation in four ways: what, where, how and for how long. You must also consider any institutional support needed in order to carry out these plans, whether from an individual, facility, organisation or service.
You should think about the possibilities for re-use of your data in other contexts and by other users, and connect this as appropriate with your plans for dissemination and Pathways to Impact.Where there is potential for re-usability, you should use standards and formats that facilitate this.
The Technical Reviewer will be looking for evidence that you understand the reasons for the choice of technical standards and formats described in Section 2.a Technical Methodology: Standards and Formats.
You should describe the types of documentation which will accompany the data. Documentation in this sense means technical documentation as well as user documentation. It includes, for instance, technical description, code commenting, project-build guidelines, the documentation of technical decisions and resource metadata which is additional to the standards which you have described in Section 2.a. Not all types of documentation will be relevant to a project and the quantity of documentation proposed should be proportionate to the envisaged value of the data.
",
+ themes: ["Theme 2", "Theme 3", "Theme 4"]
+ },
+ "4b: Ensuring Continued Accessibility and Use of Your Digital Outputs" => {
+ text: "4b: Ensuring Continued Accessibility and Use of Your Digital Outputs",
+ section: "4: Preservation, Sustainability and Use",
+ number: 2,
+ guidance: "In this section you must provide information about any plans for ensuring that digital outputs remain sustainable in the sense of immediately accessible and usable beyond the period of funding. There are costs to ensuring sustainability in this sense over and above the costs of preservation. The project's sustainability plan should therefore be proportionate to the envisaged longer-term value of the data for the research community and should be closely related to your plans for dissemination and Pathways to Impact.
If you believe that digital outputs should not be sustained beyond the period of funding then this should be justified. It is not mandatory to sustain all digital outputs. While you should consider the long-term value of the digital outputs to the research community, where they are purely ancillary to a project’s research outputs there may not be a case for sustaining them (though there would usually be a case for preservation).
You must consider the sustainability of your digital outputs in five ways: what, where, how, for how long, and how the cost will be covered. You must make appropriate provision for user consultation and user testing in this connection, and plan the development of suitable user documentation.
You should provide justification if you do not envisage open, public access. A case can be made for charging for or otherwise limiting access, but the default expectation is that access will be open. The Technical Reviewer will be looking for realistic commitments to sustaining public access in line with affordability and the longer-term value of the digital output.
You must consider any institutional support needed in order to carry out these plans, if not covered under Section 3, as well as the cost of keeping the digital output publicly available in the future, including issues relating to maintenance, infrastructure and upgrade (such as the need to modify aspects of a web interface or software application in order to account for changes in the technological environment). In order to minimise sustainability costs, it is generally useful that the expertise involved in the development of your project is supported by expertise in your own or a partner institution.
A sustainability plan does not necessarily mean a requirement to generate income or prevent resources from being freely available. Rather it is a requirement to consider the direct costs and expertise of maintaining digital outputs for continued access. Some applicants might be able to demonstrate that there will be no significant sustainability problems with their digital output; in some cases the university’s computing services or library might provide a firm commitment to sustaining the resource for a specified period; others might see the benefit of Open Source community development models. You should provide reassurances of sustainability which are proportionate to the envisaged longer-term value of the digital outputs for the research community.
When completing this section, you should consider the potential impact of the data on research in your field (if research in the discipline will be improved through the creation of the digital output, how will it be affected if the resource then disappears?), and make the necessary connections with your Impact Plan. You must factor in the effects of any IP, copyright and ethical issues during the period in which the digital output will be publicly accessible, connecting what you say with the relevant part of your Case for Support.
You must identify whether or not you envisage the academic content (as distinct from the technology) of the digital output being extended or updated beyond the period of funding, addressing the following issues: how this will be done, by who and at what cost. You will need to show how the cost of this will be sustained after the period of funding ends.
",
+ themes: ["Theme 2"]
+ }
+ }
+
+ questions.each do |q, details|
+ question = Question.new
+ question.text = details[:text]
+ question.number = details[:number]
+ question.guidance = details[:guidance]
+ question.section = Section.find_by_title(details[:section])
+ details[:themes].each do |theme|
+ question.themes << Theme.find_by_title(theme)
+ end
+ question.save!
+ end
+
+ formatting = {
+ 'Funder' => {
+ font_face: "Arial, Helvetica, Sans-Serif",
+ font_size: 11,
+ margin: { top: 20, bottom: 20, left: 20, right: 20 }
+ },
+ 'DCC' => {
+ font_face: "Arial, Helvetica, Sans-Serif",
+ font_size: 12,
+ margin: { top: 20, bottom: 20, left: 20, right: 20 }
+ }
+}
+
+ formatting.each do |org, settings|
+ template = Dmptemplate.find_by_title("#{org} Template")
+ template.settings(:export).formatting = settings
+ template.save!
+end
diff --git a/doc/README_FOR_APP b/doc/README_FOR_APP
new file mode 100644
index 0000000000..fe41f5cc24
--- /dev/null
+++ b/doc/README_FOR_APP
@@ -0,0 +1,2 @@
+Use this README file to introduce your application and point to useful places in the API for learning more.
+Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
diff --git a/html/Ability.html b/html/Ability.html
new file mode 100644
index 0000000000..8b48429228
--- /dev/null
+++ b/html/Ability.html
@@ -0,0 +1,367 @@
+
+
+
+
+
+ *
+ */
+
+/* Provide console simulation for firebug-less environments */
+if (!("console" in window) || !("firebug" in console)) {
+ var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+ "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
+
+ window.console = {};
+ for (var i = 0; i < names.length; ++i)
+ window.console[names[i]] = function() {};
+};
+
+
+/**
+ * Unwrap the first element that matches the given @expr@ from the targets and return them.
+ */
+$.fn.unwrap = function( expr ) {
+ return this.each( function() {
+ $(this).parents( expr ).eq( 0 ).after( this ).remove();
+ });
+};
+
+
+function showSource( e ) {
+ var target = e.target;
+ var codeSections = $(target).
+ parents('.method-detail').
+ find('.method-source-code');
+
+ $(target).
+ parents('.method-detail').
+ find('.method-source-code').
+ slideToggle();
+};
+
+function hookSourceViews() {
+ $('.method-heading').click( showSource );
+};
+
+function toggleDebuggingSection() {
+ $('.debugging-section').slideToggle();
+};
+
+function hookDebuggingToggle() {
+ $('#debugging-toggle img').click( toggleDebuggingSection );
+};
+
+function hookTableOfContentsToggle() {
+ $('.indexpage li .toc-toggle').each( function() {
+ $(this).click( function() {
+ $(this).toggleClass('open');
+ });
+
+ var section = $(this).next();
+
+ $(this).click( function() {
+ section.slideToggle();
+ });
+ });
+}
+
+function hookSearch() {
+ var input = $('#search-field').eq(0);
+ var result = $('#search-results').eq(0);
+ $(result).show();
+
+ var search_section = $('#search-section').get(0);
+ $(search_section).show();
+
+ var search = new Search(search_data, input, result);
+
+ search.renderItem = function(result) {
+ var li = document.createElement('li');
+ var html = '';
+
+ // TODO add relative path to
+
+
+
+
+
+
+
+
+
+
+Table of Contents - DMPonline4 Documentation
+
+Pages
+
+
+Classes/Modules
+
+
+Methods
+
+
+
+
+
diff --git a/lib/active_admin_views_pages_base.rb b/lib/active_admin_views_pages_base.rb
new file mode 100644
index 0000000000..ef42e8c644
--- /dev/null
+++ b/lib/active_admin_views_pages_base.rb
@@ -0,0 +1,15 @@
+# lib/active_admin_views_pages_base.rb
+
+class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document
+
+ private
+
+ # Renders the content for the footer
+ def build_footer
+ div :id => "footer" do
+ para "Copyright © #{Date.today.year.to_s}".html_safe
+ #{link_to('Example.com', 'http://example.com')}.
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/lib/assets/.gitkeep b/lib/assets/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/lib/custom_failure.rb b/lib/custom_failure.rb
new file mode 100644
index 0000000000..c817088f2e
--- /dev/null
+++ b/lib/custom_failure.rb
@@ -0,0 +1,13 @@
+class CustomFailure < Devise::FailureApp
+ def redirect_url
+ root_path
+ end
+
+ def respond
+ if http_auth?
+ http_auth
+ else
+ redirect
+ end
+ end
+end
\ No newline at end of file
diff --git a/lib/tasks/.gitkeep b/lib/tasks/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/lib/tasks/user_data.rake b/lib/tasks/user_data.rake
new file mode 100644
index 0000000000..9b268c3598
--- /dev/null
+++ b/lib/tasks/user_data.rake
@@ -0,0 +1,9 @@
+namespace :db do
+ desc "Fill database with sample data"
+ task populate: :environment do
+ admin = User.create!(email: "test@test.com",
+ password: "password",
+ password_confirmation: "password")
+ admin.add_role(:admin)
+ end
+end
\ No newline at end of file
diff --git a/lib/templates/erb/scaffold/_form.html.erb b/lib/templates/erb/scaffold/_form.html.erb
new file mode 100644
index 0000000000..d2b8b1e289
--- /dev/null
+++ b/lib/templates/erb/scaffold/_form.html.erb
@@ -0,0 +1,11 @@
+<%%= semantic_form_for @<%= singular_name %> do |f| %>
+ <%%= f.inputs do %>
+ <%- attributes.each do |attribute| -%>
+ <%%= f.input :<%= attribute.name %> %>
+ <%- end -%>
+ <%% end %>
+
+ <%%= f.actions do %>
+ <%%= f.action :submit, :as => :input %>
+ <%% end %>
+<%% end %>
diff --git a/log/.gitkeep b/log/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/public/403.html b/public/403.html
new file mode 100644
index 0000000000..fd18a0d801
--- /dev/null
+++ b/public/403.html
@@ -0,0 +1,122 @@
+
+
+
+
+DMPonline
+
+
+
+
+
+
+
+Welcome to DMPonline version 4
+
+
+
Something has gone wrong.
+
To report this error please contact us on dmponline@dcc.ac.uk
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/404.html b/public/404.html
new file mode 100644
index 0000000000..9a48320a5f
--- /dev/null
+++ b/public/404.html
@@ -0,0 +1,26 @@
+
+
+
+ The page you were looking for doesn't exist (404)
+
+
+
+
+
+
+
The page you were looking for doesn't exist.
+
You may have mistyped the address or the page may have moved.
+
+
+
diff --git a/public/422.html b/public/422.html
new file mode 100644
index 0000000000..83660ab187
--- /dev/null
+++ b/public/422.html
@@ -0,0 +1,26 @@
+
+
+
+ The change you wanted was rejected (422)
+
+
+
+
+
+
+
The change you wanted was rejected.
+
Maybe you tried to change something you didn't have access to.
+
+
+
diff --git a/public/500.html b/public/500.html
new file mode 100644
index 0000000000..f3648a0dbc
--- /dev/null
+++ b/public/500.html
@@ -0,0 +1,25 @@
+
+
+
+ We're sorry, but something went wrong (500)
+
+
+
+
+
+
+
We're sorry, but something went wrong.
+
+
+
diff --git a/public/_index.html b/public/_index.html
new file mode 100644
index 0000000000..a9ec89b77b
--- /dev/null
+++ b/public/_index.html
@@ -0,0 +1,121 @@
+
+
+
+
+DMPonline
+
+
+
+
+
+
+
+Welcome to DMPonline version 4
+
+
+
DMPonline is down. Please try again soon.
+
If this is problematic, then please contact us on dmponline@dcc.ac.uk
+
+
+
+
+
+
+
+
+
+
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/public/files/DMPonline-DeliveryNote-May2015.pdf b/public/files/DMPonline-DeliveryNote-May2015.pdf
new file mode 100644
index 0000000000..c77d1caad1
Binary files /dev/null and b/public/files/DMPonline-DeliveryNote-May2015.pdf differ
diff --git a/public/files/DMPonline-ReleaseNote-August2015.pdf b/public/files/DMPonline-ReleaseNote-August2015.pdf
new file mode 100644
index 0000000000..47a317f3cd
Binary files /dev/null and b/public/files/DMPonline-ReleaseNote-August2015.pdf differ
diff --git a/public/files/DMPonline-v4-InstitutionalBranding.pdf b/public/files/DMPonline-v4-InstitutionalBranding.pdf
new file mode 100644
index 0000000000..4cd5605a44
Binary files /dev/null and b/public/files/DMPonline-v4-InstitutionalBranding.pdf differ
diff --git a/public/files/DMPonline-v4-InstitutionalLogin.pdf b/public/files/DMPonline-v4-InstitutionalLogin.pdf
new file mode 100644
index 0000000000..91e06adad3
Binary files /dev/null and b/public/files/DMPonline-v4-InstitutionalLogin.pdf differ
diff --git a/public/files/DMPonline-v4-LocaleSupport.pdf b/public/files/DMPonline-v4-LocaleSupport.pdf
new file mode 100644
index 0000000000..a953f9a627
Binary files /dev/null and b/public/files/DMPonline-v4-LocaleSupport.pdf differ
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000000..085187fa58
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,5 @@
+# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
+#
+# To ban all spiders from the entire site uncomment the next two lines:
+# User-Agent: *
+# Disallow: /
diff --git a/test/fixtures/.gitkeep b/test/fixtures/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/test/fixtures/answers.yml b/test/fixtures/answers.yml
new file mode 100644
index 0000000000..9a5ef0482a
--- /dev/null
+++ b/test/fixtures/answers.yml
@@ -0,0 +1,13 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# text: MyText
+# plan_id: 1
+# user_id: 1
+# question_id: 1
+#
+#two:
+# text: MyText
+# plan_id: 1
+# user_id: 1
+# question_id: 1
diff --git a/test/fixtures/comments.yml b/test/fixtures/comments.yml
new file mode 100644
index 0000000000..0227f37b73
--- /dev/null
+++ b/test/fixtures/comments.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+one:
+ user_id: 1
+ question_id: 1
+ text: MyText
+
+two:
+ user_id: 1
+ question_id: 1
+ text: MyText
diff --git a/test/fixtures/dmptemplates.yml b/test/fixtures/dmptemplates.yml
new file mode 100644
index 0000000000..faeab525c9
--- /dev/null
+++ b/test/fixtures/dmptemplates.yml
@@ -0,0 +1,65 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+dcc_template:
+ title: "DMP Template"
+ description: "The default DCC template"
+ published: true
+ organisation: dcc
+ locale: en
+ is_default: true
+
+ahrc_template:
+ title: "AHRC Template"
+ description: "AHRC template"
+ published: true
+ organisation: ahrc
+ locale: en
+
+bbsrc_template:
+ title: "BBSRC Template"
+ description: "BBSRC template"
+ published: true
+ organisation: bbsrc
+ locale: en
+
+cruk_template:
+ title: "CRUK Template"
+ description: "CRUK template"
+ published: true
+ organisation: cruk
+ locale: en
+
+esrc_template:
+ title: "ESRC Template"
+ description: "ESRC template"
+ published: true
+ organisation: esrc
+ locale: en
+
+nerc_template:
+ title: "NERC Template"
+ description: "NERC template"
+ published: true
+ organisation: nerc
+ locale: en
+
+mrc_template:
+ title: "MRC Template"
+ description: "MRC template"
+ published: true
+ organisation: mrc
+ locale: en
+
+stfc_template:
+ title: "STFC Template"
+ description: "STFC template"
+ published: true
+ organisation: stfc
+ locale: en
+
+wellcome_template:
+ title: "Wellcome Trust Template"
+ description: "Wellcome Trust template"
+ published: true
+ organisation: wellcome
+ locale: en
\ No newline at end of file
diff --git a/test/fixtures/file_types.yml b/test/fixtures/file_types.yml
new file mode 100644
index 0000000000..dce99acb24
--- /dev/null
+++ b/test/fixtures/file_types.yml
@@ -0,0 +1,13 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# name: MyString
+# icon_name: MyString
+# icon_size: 1
+# icon_location: MyString
+#
+#two:
+# name: MyString
+# icon_name: MyString
+# icon_size: 1
+# icon_location: MyString
diff --git a/test/fixtures/file_uploads.yml b/test/fixtures/file_uploads.yml
new file mode 100644
index 0000000000..55c042d711
--- /dev/null
+++ b/test/fixtures/file_uploads.yml
@@ -0,0 +1,19 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# name: MyString
+# title: MyString
+# description: MyText
+# size: 1
+# published: false
+# location: MyString
+# file_type_id: 1
+#
+#two:
+# name: MyString
+# title: MyString
+# description: MyText
+# size: 1
+# published: false
+# location: MyString
+# file_type_id: 1
diff --git a/test/fixtures/guidance_groups.yml b/test/fixtures/guidance_groups.yml
new file mode 100644
index 0000000000..573143a3e6
--- /dev/null
+++ b/test/fixtures/guidance_groups.yml
@@ -0,0 +1,6 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+dcc_guidance_group_1:
+ name: "DCC guidance group 1"
+ organisation: dcc
+ guidances: related_policies, existing_data, licensing_of_existing_data, relationship_to_existing_data, description_of_data_content, data_format, data_volumes, data_type, data_capture_methods, data_organisation, data_quality, documentation, metadata_capture, metadata_standards, discovery_by_users, ethical_issues, ipr_ownership_and_licencing, active_data_storage, backup_procedures, data_security, data_selection, preservation_plan, period_of_preservation, data_repository, audience, expected_reuse, method_for_data_sharing, timeframe_for_data_sharing, embargo_period, restrictions_on_sharing, managed_access_procedures, responsibilities, resourcing_skills_and_training, resourcing_hardware_and_software, resourcing_preservation_and_data_sharing
\ No newline at end of file
diff --git a/test/fixtures/guidances.yml b/test/fixtures/guidances.yml
new file mode 100644
index 0000000000..b167fdb1c9
--- /dev/null
+++ b/test/fixtures/guidances.yml
@@ -0,0 +1,141 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+related_policies:
+ text: " - Are there any existing procedures that you will base your approach on?
- Does your department/group have data management guidelines?
- Does your institution have a data protection or security policy that you will follow?
- Does your institution have a Research Data Management (RDM) policy?
- Does your funder have a Research Data Management policy?
- Are there any formal standards that you will adopt?
List any other relevant funder, institutional, departmental or group policies on data management, data sharing and data security. Some of the information you give in the remainder of the DMP will be determined by the content of other policies. If so, point/link to them here.
"
+ theme: related_policies
+
+existing_data:
+ text: " - Are there any existing data or methods that you can reuse?
Check to see if there are any existing data that you can reuse, for examples by consulting relevant repositories.
When creating new data sources, explain why existing data sources cannot be re-used.
A list of repositories is provided by Databib or Re3data .
"
+ theme: existing_data
+
+licensing_of_existing_data:
+ text: " - Do you need to pay to reuse existing data?
- Are there any restrictions on the reuse of third-party data?
- Can the data that you create - which may be derived from third-party data - be shared?
If purchasing or reusing existing data sources, explain how issues such as copyright and IPR have been addressed.
"
+ theme: licensing_of_existing_data
+
+relationship_to_existing_data:
+ text: " - What is the relationship to existing data e.g. in public repositories?
- How does your data complement and integrate with existing data?
Consider the relationship between the data that you will capture and existing data available in public repositories or elsewhere.
"
+ theme: relationship_to_existing_data
+
+description_of_data_content:
+ text: " - What data will you create?
Give a brief description of the data that will be created, noting its content and coverage
"
+ theme: description_of_data_content
+
+data_format:
+ text: " - What format will your data be in?
- Why have you chosen to use particular formats?
- Do the chosen formats and software enable sharing and long-term validity of data?
Outline and justify your choice of format e.g. SPSS, Open Document Format, tab-delimited format, MS Excel.
Decisions may be based on staff expertise, a preference for Open formats, the standards accepted by data centres or widespread usage with a given community. Using standardised and interchangeable or open lossless data formats ensures the long-term usability of data.
See UKDA Guidance on recommended data formats.
"
+ theme: data_format
+
+data_volumes:
+ text: " - Do you have sufficient storage?
- Do you need to include costs for additional managed storage?
- Will the scale of the data pose challenges when sharing or transferring data between sites?
Consider the implications of data volumes in terms of storage, backup and access.
Estimate the volume of data in KB/MB/GB and how this will grow to make sure any additional storage and technical support required can be provided.
"
+ theme: data_volumes
+
+data_type:
+ text: " - What types of data will you create?
- Which types of data will have long-term value?
Outline the types of data that are expected to be produced from the project e.g. quantitative, qualitative, survey data, experimental measurements, models, images, audiovisual data, samples…
Include the raw data arising directly from the research, the reduced data derived from it, and published data.
"
+ theme: data_type
+
+data_capture_methods:
+ text: " - How will the data be created?
- What standards or methodologies will you use?
Outline how the data will be collected/generated and which community data standards (if any) will be used at this stage.
"
+ theme: data_capture_methods
+
+data_organisation:
+ text: " - How will you structure and name your folders and files?
- How will you ensure that different versions of a dataset are easily identifiable?
Indicate how the data will be organised during the project, mentioning for example naming conventions, version control and folder structures. Consistent, well-ordered research data will be easier for the research team to find, understand and reuse.
"
+ theme: data_organisation
+
+data_quality:
+ text: " - How will you control data capture to ensure data quality?
- What quality assurance processes will you adopt?
Explain how the consistency and quality of data collection will be controlled and documented.
This may include processes such as calibration, repeat samples or measurements, standardised data capture or recording, data entry validation, peer review of data or representation with controlled vocabularies.
"
+ theme: data_quality
+
+documentation:
+ text: " - What metadata, documentation or other supporting material should accompany the data for it to be interpreted correctly?
- What information needs to be retained to enable the data to be read and interpreted in the future?
Describe the types of documentation that will accompany the data to provide a secondary users with any necessary details to prevent misuse, misinterpretation or confusion. This may include information on the methodology used to collect the data, analytical and procedural information, definitions of variables, units of measurement, any assumptions made, the format and file type of the data.
"
+ theme: documentation
+
+metadata_capture:
+ text: " - How will you capture / create the metadata?
- Can any of this information be created automatically?
Metadata should be created to describe the data and aid discovery. Consider how you will capture this information and where it will be recorded e.g. in a database with links to each item, in a ‘readme’ text file, in file headers.
"
+ theme: metadata_capture
+
+metadata_standards:
+ text: " - What metadata standards will you use and why?
Researchers are strongly encouraged to utilise community standards to describe and structure data, where these are in place. The DCC offers a catalogue of disciplinary metadata standards.
"
+ theme: metadata_standards
+
+discovery_by_users:
+ text: " - How will potential users find out about your data?
- Will you provide metadata online to aid discovery and reuse?
Indicate how potential new users can find out about your data and identify whether they could be suitable for their research purposes. For example, you may provide basic discovery metadata online, such as title, author, subjects, keywords and publisher.
"
+ theme: discovery_by_users
+
+ethical_issues:
+ text: " - Have you gained consent for data preservation and sharing?
- How will sensitive data be handled to ensure it is stored and transferred securely?
- How will you protect the identity of participants? e.g. via anonymisation or using managed access procedures?
Investigators carrying out research involving human participants must ensure that consent is obtained to share data. Managing ethical concerns may include: anonymisation of data; referral to departmental or institutional ethics committees; and formal consent agreements. Ethical issues may affect how you store data, who can see/use it and how long it is kept. You should show that you’re aware of this and have planned accordingly.
See UKDA Guidance on Consent, Confidentiality and Ethics.
"
+ theme: ethical_issues
+
+ipr_ownership_and_licencing:
+ text: " - Who owns the data?
- How will the data be licensed for reuse?
- Will data sharing be postponed / restricted e.g. to seek patents?
State who will own the copyright and IPR of any new data that you will generate. For multi-partner projects, IPR ownership may be worth covering in a consortium agreement. Outline any restrictions needed on data sharing e.g. to protect proprietary or patentable data.
See DCC How to license research data.
"
+ theme: ipr_ownership_and_licencing
+
+active_data_storage:
+ text: " - Where will the data be stored?
- Do you have access to enough storage or will you need to include charges for additional services?
Storing data on laptops, computer hard drives or external storage devices alone is very risky. The use of robust, managed storage provided by university IT teams is preferable.
See UKDA Guidance on Data Storage.
"
+ theme: active_data_storage
+
+backup_procedures:
+ text: " - How will the data be backed up? i.e. how often, to where, how many copies, is this automated…
- Who will be responsible for backup?
- Have you tested whether you can restore from your backups?
Describe the data back-up procedures that you will adopt to ensure the data and metadata are securely stored during the lifetime of the project. You may need to discuss your institution’s policy on back-ups. It is better to use automatic backup services provided by university IT than rely on manual processes.
See UKDA Guidance on Data Backup.
"
+ theme: backup_procedures
+
+data_security:
+ text: " - What are the risks to data security and how will these be managed?
- Will you follow any formal standards?
If your data is sensitive (e.g. detailed personal data, politically sensitive information or trade secrets) you should discuss any appropriate security measures that you will be taking. Note the main risks and how these will be managed. Identify any formal standards that you will comply with e.g. ISO 27001.
See DCC Briefing Paper on Information Security Management - ISO 27000.
See UKDA Guidance on Data Security.
"
+ theme: data_security
+
+data_selection:
+ text: " - Which data are of long-term value and should be shared and/or preserved?
- How will you decide what to keep?
Indicate which data you intend to preserve beyond the period of funding. This should be based on what has long-term value and is economically viable to keep. Consider how long you wish to keep the data and what will happen to it e.g. deposit in a data repository to enable reuse.
See DCC How to appraise and select research data.
"
+ theme: data_selection
+
+preservation_plan:
+ text: " - What is the long-term preservation plan for the dataset? e.g. deposit in a data repository
- Will additional resources be needed to prepare data for deposit or meet charges from data repositories?
Researchers should consider how datasets that have long-term value will be preserved and curated beyond the lifetime of the grant. Also outline the plans for preparing and documenting data for sharing and archiving.
If you do not propose to use an established repository, the data management plan should demonstrate that resources and systems will be in place to enable the data to be curated effectively beyond the lifetime of the grant.
"
+ theme: preservation_plan
+
+period_of_preservation:
+ text: " - How long will the data be retained and preserved?
This may depend on the type of data. Most research funders expect data to be retained for a minimum of 10 years from the end of the project. For data that by their nature cannot be re-measured, efforts should be made to retain them indefinitely.
"
+ theme: period_of_preservation
+
+data_repository:
+ text: " - Where (i.e. in which repository) will the data be deposited?
Most research funders recommend the use of established data repositories, community databases and related initiatives to aid data preservation, sharing and reuse.
An international list of data repositories is available via Databib or Re3data.
"
+ theme: data_repository
+
+audience:
+ text: " - Who may be interested in using your data?
Where possible outline the types of users you expect and estimate numbers.
"
+ theme: audiencethe
+
+expected_reuse:
+ text: " - What are the further intended or foreseeable research uses for the data?
You should think about the possibilities for re-use of your data in other contexts and by other users, and connect this as appropriate with your plans for dissemination and Pathways to Impact. Where there is potential for reuse, you should use standards and formats that facilitate this.
"
+ theme: expected_reuse
+
+method_for_data_sharing:
+ text: " - How will you make the data available to others?
- With whom will you share the data, and under what conditions?
Consider where, how, and to whom the data should be made available. Will you share data via a data repository, handle data requests directly or use another mechanism?
The methods used to share data will be dependent on a number of factors such as the type, size, complexity and sensitivity of data. Mention earlier examples to show a track record of effective data sharing.
"
+ theme: method_for_data_sharing
+
+timeframe_for_data_sharing:
+ text: " - When will you make the data available?
Data (with accompanying metadata) should be shared in a timely fashion. It is generally expected that timely release would generally be no later than the release through publication of the main findings and should be in-line with established best practice in the field.
"
+ theme: timeframe_for_data_sharing
+
+embargo_period:
+ text: " - For how long do you need exclusive use of the data and why?
The value of data often depends on timeliness. Researchers have a legitimate interest in benefiting from their investment of time and effort in producing data, but not in prolonged exclusive use. Research funders typically allow embargoes in line with practice in the field, but expect these to be outlined and justified.
"
+ theme: embargo_period
+
+restrictions_on_sharing:
+ text: " - Are any restrictions on data sharing required? e.g. limits on who can use the data, when and for what purpose.
- What restrictions are needed and why?
- What action will you take to overcome or minimise restrictions?
Outline any expected difficulties in data sharing, along with causes and possible measures to overcome these. Restrictions to data sharing may be due to participant confidentiality, consent agreements or IPR. Strategies to limit restrictions may include: anonymising or aggregating data; gaining participant consent for data sharing; gaining copyright permissions; and agreeing a limited embargo period.
"
+ theme: restrictions_on_sharing
+
+managed_access_procedures:
+ text: " - Will access be tightly controlled or restricted? e.g. by using data enclaves / secure data services
- Will a data sharing agreement be required?
- How will the data be licensed for reuse?
Indicate whether external users are (will be) bound by data sharing agreements, licenses or end-user agreements. If so, set out the terms and key responsibilities to be followed.
Note how access will be controlled, for example by the use of specialist services. A data enclave provides a controlled secure environment in which eligible researchers can perform analyses using restricted data resources.
Where a managed access process is required, the procedure should be clearly described and transparent.
"
+ theme: managed_access_procedures
+
+responsibilities:
+ text: " - Who is responsible for each data management activity?
- How are responsibilities split across partner sites in collaborative research projects?
Outline the roles and responsibilities for all activities e.g. data capture, metadata production, data quality, storage and backup, data archiving & data sharing. Individuals should be named where possible. For collaborative projects you should explain the co-ordination of data management responsibilities across partners.
See UKDA Guidance on data management roles and responsibilities.
"
+ theme: responsibilities
+
+resourcing_skills_and_training:
+ text: " - Is additional specialist expertise (or training for existing staff) required?
- How will additional skills be sourced?
Carefully consider any resources needed to deliver the plan. Where dedicated resources are needed, these should be outlined and justified.
Outline any relevant technical expertise, support and training that is likely to be required and how it will be acquired.
"
+ theme: resourcing_skills_and_training
+
+resourcing_hardware_and_software:
+ text: " - Are there appropriate computational facilities to manage, store and analyse the data?
Carefully consider any resources needed to deliver the plan. Where dedicated resources are needed, these should be outlined and justified.
Provide details and justification for any hardware or software which will be used to support the project’s research methodology, which is additional or exceptional to conventional desk-based research and institutional provision. This includes additional storage and backup costs that may be charged by IT services.
"
+ theme: resourcing_hardware_and_software
+
+resourcing_preservation_and_data_sharing:
+ text: " - Will charges be applied by data repositories?
- Have you costed in time and effort to prepare the data for sharing / preservation?
Carefully consider any resources needed to deliver the plan. Where dedicated resources are needed, these should be outlined and justified.
Funding should be included to cover any charges applied by data repositories, for example to handle data of exceptional size or complexity. Also remember to cost in time and effort to prepare data for deposit and ensure it is adequately documented to enable reuse.
If you are not depositing in a data repository, ensure you have appropriate resources and systems in place to share and preserve the data.
See UKDA How to cost data management.
"
+ theme: resourcing_preservation_and_data_sharing
\ No newline at end of file
diff --git a/test/fixtures/option_warnings.yml b/test/fixtures/option_warnings.yml
new file mode 100644
index 0000000000..97c8505d7d
--- /dev/null
+++ b/test/fixtures/option_warnings.yml
@@ -0,0 +1,40 @@
+#single_select_1_warning:
+# option: single_select_1
+# organisation: uog
+# text: This warning should display when option 1 of the single item select box example is selected for a project at the University of Glasgow
+#
+#single_select_2_warning:
+# option: single_select_2
+# organisation: hatii
+# text: This warning should display when option 2 of the single item select box example is selected for a project at HATII
+#
+#
+#multiple_select_3_warning:
+# option: multiple_select_3
+# organisation: uoe
+# text: This warning should display when option 3 of the multiple item select box example is selected for a project at the University of Edinburgh
+#
+#multiple_select_4_warning:
+# option: multiple_select_4
+# organisation: uoe_si
+# text: This warning should display when option 4 of the multiple item select box example is selected for a project at the School of Informatics
+#
+#radio_button_1_warning:
+# option: radio_button_1
+# organisation: uog
+# text: This warning should display when option 1 of the radio button example is selected for a project at the University of Glasgow
+#
+#radio_button_2_warning:
+# option: radio_button_2
+# organisation: hatii
+# text: This warning should display when option 2 of the radio button example is selected for a project at HATII
+#
+#checkbox_3_warning:
+# option: checkbox_3
+# organisation: uoe
+# text: This warning should display when option 3 of the checkbox example is selected for a project at the University of Edinburgh
+#
+#checkbox_4_warning:
+# option: checkbox_4
+# organisation: uoe_si
+# text: This warning should display when option 4 of the checkbox example is selected for a project at the School of Informatics
\ No newline at end of file
diff --git a/test/fixtures/options.yml b/test/fixtures/options.yml
new file mode 100644
index 0000000000..e3bc074818
--- /dev/null
+++ b/test/fixtures/options.yml
@@ -0,0 +1,89 @@
+#single_select_1:
+# question: single_select_box
+# text: Option 1
+# number: 1
+#
+#single_select_2:
+# question: single_select_box
+# text: Option 2
+# number: 2
+#
+#single_select_3:
+# question: single_select_box
+# text: Option 3
+# number: 3
+#
+#single_select_4:
+# question: single_select_box
+# text: Option 4
+# number: 4
+#
+#multiple_select_1:
+# question: multiple_select_box
+# text: Option 1
+# number: 1
+#
+#multiple_select_2:
+# question: multiple_select_box
+# text: Option 2
+# number: 2
+#
+#multiple_select_3:
+# question: multiple_select_box
+# text: Option 3
+# number: 3
+#
+#multiple_select_4:
+# question: multiple_select_box
+# text: Option 4
+# number: 4
+#
+#radio_button_1:
+# question: radio_button
+# text: Option 1
+# number: 1
+#
+#radio_button_2:
+# question: radio_button
+# text: Option 2
+# number: 2
+#
+#radio_button_3:
+# question: radio_button
+# text: Option 3
+# number: 3
+#
+#radio_button_4:
+# question: radio_button
+# text: Option 4
+# number: 4
+#
+#checkbox_1:
+# question: checkbox
+# text: Option 1
+# number: 1
+#
+#checkbox_2:
+# question: checkbox
+# text: Option 2
+# number: 2
+#
+#checkbox_3:
+# question: checkbox
+# text: Option 3
+# number: 3
+#
+#checkbox_4:
+# question: checkbox
+# text: Option 4
+# number: 4
+
+mrc_5_2_yes:
+ question: mrc_5_2
+ text: "Yes"
+ number: 1
+
+mrc_5_2_no:
+ question: mrc_5_2
+ text: "No"
+ number: 2
\ No newline at end of file
diff --git a/test/fixtures/organisation_types.yml b/test/fixtures/organisation_types.yml
new file mode 100644
index 0000000000..0f79cd8d1a
--- /dev/null
+++ b/test/fixtures/organisation_types.yml
@@ -0,0 +1,21 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+funder:
+ name: "Funder"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
+
+institution:
+ name: "Institution"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
+
+organisation:
+ name: "Organisation"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
+
+school:
+ name: "School"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
+
+project:
+ name: "Project"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
diff --git a/test/fixtures/organisations.yml b/test/fixtures/organisations.yml
new file mode 100644
index 0000000000..4ac384ecbc
--- /dev/null
+++ b/test/fixtures/organisations.yml
@@ -0,0 +1,894 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+dcc:
+ name: "Digital Curation Centre"
+ abbreviation: "DCC"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"
+ organisation_type: organisation
+
+ahrc:
+ name: "Arts and Humanities Research Council"
+ abbreviation: "AHRC"
+ organisation_type: funder
+
+bbsrc:
+ name: "Biotechnology and Biological Sciences Research Council"
+ abbreviation: "BBSRC"
+ organisation_type: funder
+
+cruk:
+ name: "Cancer Research UK"
+ abbreviation: "CRUK"
+ organisation_type: funder
+
+esrc:
+ name: "Economic and Social Research Council"
+ abbreviation: "ESRC"
+ organisation_type: funder
+
+nerc:
+ name: "Natural Environment Research Council"
+ abbreviation: "NERC"
+ organisation_type: funder
+
+mrc:
+ name: "Medical Research Council"
+ abbreviation: "MRC"
+ organisation_type: funder
+
+stfc:
+ name: "Science and Technology Facilities Council"
+ abbreviation: "STFC"
+ organisation_type: funder
+
+wellcome:
+ name: "Wellcome Trust"
+ abbreviation: "Wellcome Trust"
+ organisation_type: funder
+
+#uoe_si:
+# name: "School of informatics"
+# abbreviation: "UoE SI"
+# organisation_type: school
+# parent: uoe
+#
+#hatii:
+# name: Humanities Advanced Technology and Information Institute
+# abbreviation: HATII
+# organisation_type: school
+# parent: uog
+
+aru:
+ name: Anglia Ruskin University
+ domain: www.anglia.ac.uk
+ organisation_type: institution
+
+au:
+ name: Aston University
+ domain: www.aston.ac.uk
+ organisation_type: institution
+
+bu:
+ name: Bangor University
+ domain: www.bangor.ac.uk
+ organisation_type: institution
+
+bsu:
+ name: Bath Spa University
+ domain: www.bathspa.ac.uk
+ organisation_type: institution
+
+bc:
+ name: Birkbeck College
+ domain: www.bbk.ac.uk
+ organisation_type: institution
+
+bcu:
+ name: Birmingham City University
+ domain: www.bcu.ac.uk
+ organisation_type: institution
+
+bgucl:
+ name: Bishop Grosseteste University College Lincoln
+ domain: www.bishopg.ac.uk
+ organisation_type: institution
+
+bou:
+ name: Bournemouth University
+ domain: www.bournemouth.ac.uk
+ organisation_type: institution
+
+bru:
+ name: Brunel University
+ domain: www.brunel.ac.uk
+ organisation_type: institution
+
+bnu:
+ name: Buckinghamshire New University
+ domain: www.bucks.ac.uk
+ organisation_type: institution
+
+cccu:
+ name: Canterbury Christ Church University
+ domain: www.canterbury.ac.uk
+ organisation_type: institution
+
+cmu:
+ name: Cardiff Metropolitan University
+ domain: www.cardiffmet.ac.uk
+ organisation_type: institution
+
+cu:
+ name: Cardiff University
+ domain: www.cardiff.ac.uk
+ organisation_type: institution
+
+cioa:
+ name: Courtauld Institute Of Art
+ domain: www.courtauld.ac.uk
+ organisation_type: institution
+
+cu:
+ name: Coventry University
+ domain: www.coventry.ac.uk
+ organisation_type: institution
+
+cru:
+ name: Cranfield University
+ domain: www.cranfield.ac.uk
+ organisation_type: institution
+
+dmu:
+ name: De Montfort University
+ domain: www.dmu.ac.uk
+ organisation_type: institution
+
+ehu:
+ name: Edge Hill University
+ domain: www.edgehill.ac.uk
+ organisation_type: institution
+
+enu:
+ name: Edinburgh Napier University
+ domain: www.napier.ac.uk
+ organisation_type: institution
+
+gcu:
+ name: Glasgow Caledonian University
+ domain: www.gcu.ac.uk
+ organisation_type: institution
+
+gsa:
+ name: Glasgow School Of Art
+ domain: www.gsa.ac.uk
+ organisation_type: institution
+
+gu:
+ name: Glyndwr University
+ domain: www.glyndwr.ac.uk
+ organisation_type: institution
+
+gc:
+ name: Goldsmiths' College
+ domain: www.gold.ac.uk
+ organisation_type: institution
+
+gsomad:
+ name: Guildhall School Of Music And Drama
+ domain: www.gsmd.ac.uk
+ organisation_type: institution
+
+hauc:
+ name: Harper Adams University College
+ domain: www.harper-adams.ac.uk
+ organisation_type: institution
+
+hwu:
+ name: Heriot-Watt University
+ domain: www.hw.ac.uk
+ organisation_type: institution
+
+hc:
+ name: Heythrop College
+ domain: www.heythrop.ac.uk
+ organisation_type: institution
+
+icostm:
+ name: "Imperial College Of Science, Technology And Medicine"
+ domain: www.imperial.ac.uk
+ organisation_type: institution
+
+ioeuol:
+ name: "Institute Of Education, University Of London"
+ domain: www.ioe.ac.uk
+ organisation_type: institution
+
+kcl:
+ name: King's College London
+ domain: www.kcl.ac.uk
+ organisation_type: institution
+
+ku:
+ name: Kingston University
+ domain: www.kingston.ac.uk
+ organisation_type: institution
+
+lcoa:
+ name: Leeds College Of Art
+ domain: www.leeds-art.ac.uk
+ organisation_type: institution
+
+lcom:
+ name: Leeds College Of Music
+ domain: www.lcm.ac.uk
+ organisation_type: institution
+
+lmu:
+ name: Leeds Metropolitan University
+ domain: www.leedsmet.ac.uk
+ organisation_type: institution
+
+ltuc:
+ name: Leeds Trinity University College
+ domain: www.leedstrinity.ac.uk
+ organisation_type: institution
+
+lhu:
+ name: Liverpool Hope University
+ domain: www.hope.ac.uk
+ organisation_type: institution
+
+ljmu:
+ name: Liverpool John Moores University
+ domain: www.ljmu.ac.uk
+ organisation_type: institution
+
+lbs:
+ name: London Business School
+ domain: www.london.edu
+ organisation_type: institution
+
+lmu:
+ name: London Metropolitan University
+ domain: www.londonmet.ac.uk
+ organisation_type: institution
+
+lsoeps:
+ name: London School Of Economics & Political Science
+ domain: www.lse.ac.uk
+ organisation_type: institution
+
+lsohatm:
+ name: London School Of Hygiene And Tropical Medicine
+ domain: www.lshtm.ac.uk
+ organisation_type: institution
+
+lsbu:
+ name: London South Bank University
+ domain: www.lsbu.ac.uk
+ organisation_type: institution
+
+lu:
+ name: Loughborough University
+ domain: www.lboro.ac.uk
+ organisation_type: institution
+
+mu:
+ name: Middlesex University
+ domain: www.mdx.ac.uk
+ organisation_type: institution
+
+nuc:
+ name: Newman University College
+ domain: www.newman.ac.uk
+ organisation_type: institution
+
+nsocd:
+ name: Northern School Of Contemporary Dance
+ domain: www.nscd.ac.uk
+ organisation_type: institution
+
+nucota:
+ name: Norwich University College Of The Arts
+ domain: www.nuca.ac.uk
+ organisation_type: institution
+
+ntu:
+ name: Nottingham Trent University
+ domain: www.ntu.ac.uk
+ organisation_type: institution
+
+obu:
+ name: Oxford Brookes University
+ domain: www.brookes.ac.uk
+ organisation_type: institution
+
+pa:
+ name: Prifysgol Aberystwyth
+ domain: www.aber.ac.uk
+ organisation_type: institution
+
+qmue:
+ name: "Queen Margaret University, Edinburgh"
+ domain: www.qmu.ac.uk
+ organisation_type: institution
+
+qmawcuol:
+ name: "Queen Mary And Westfield College, University Of London"
+ domain: www.qmul.ac.uk
+ organisation_type: institution
+
+rl:
+ name: Ravensbourne Limited
+ domain: www.rave.ac.uk
+ organisation_type: institution
+
+ru:
+ name: Roehampton University
+ domain: www.roehampton.ac.uk
+ organisation_type: institution
+
+rbc:
+ name: Rose Bruford College
+ domain: www.bruford.ac.uk
+ organisation_type: institution
+
+raom:
+ name: Royal Academy Of Music
+ domain: www.ram.ac.uk
+ organisation_type: institution
+
+rac:
+ name: Royal Agricultural College
+ domain: www.rac.ac.uk
+ organisation_type: institution
+
+rcom:
+ name: Royal College Of Music
+ domain: www.rcm.ac.uk
+ organisation_type: institution
+
+rcos:
+ name: Royal Conservatoire Of Scotland
+ domain: www.rcs.ac.uk
+ organisation_type: institution
+
+rhcabnc:
+ name: Royal Holloway College And Bedford New College
+ domain: www.rhul.ac.uk
+ organisation_type: institution
+
+rncom:
+ name: Royal Northern College Of Music
+ domain: www.rncm.ac.uk
+ organisation_type: institution
+
+rwcomadl:
+ name: Royal Welsh College Of Music And Drama Limited
+ domain: www.rwcmd.ac.uk
+ organisation_type: institution
+
+sooaas:
+ name: School Of Oriental And African Studies
+ domain: www.soas.ac.uk
+ organisation_type: institution
+
+shu:
+ name: Sheffield Hallam University
+ domain: www.shu.ac.uk
+ organisation_type: institution
+
+ssu:
+ name: Southampton Solent University
+ domain: www.solent.ac.uk
+ organisation_type: institution
+
+sruc:
+ name: Sruc
+ domain: www.sac.ac.uk
+ organisation_type: institution
+
+sghms:
+ name: St George's Hospital Medical School
+ domain: www.sgul.ac.uk
+ organisation_type: institution
+
+smuc:
+ name: St Mary's University College
+ domain: www.stmarys-belfast.ac.uk
+ organisation_type: institution
+
+smuct:
+ name: "St Mary's University College, Twickenham"
+ domain: www.smuc.ac.uk
+ organisation_type: institution
+
+su:
+ name: Staffordshire University
+ domain: www.staffs.ac.uk
+ organisation_type: institution
+
+suc:
+ name: Stranmillis University College
+ domain: www.stran.ac.uk
+ organisation_type: institution
+
+smu:
+ name: Swansea Metropolitan University
+ domain: www.smu.ac.uk
+ organisation_type: institution
+
+su:
+ name: Swansea University
+ domain: www.swan.ac.uk
+ organisation_type: institution
+
+tu:
+ name: Teesside University
+ domain: www.tees.ac.uk
+ organisation_type: institution
+
+taucab:
+ name: The Arts University College At Bournemouth
+ domain: www.aucb.ac.uk
+ organisation_type: institution
+
+tcsosad:
+ name: The Central School Of Speech And Drama
+ domain: www.cssd.ac.uk
+ organisation_type: institution
+
+tcu:
+ name: The City University
+ domain: www.city.ac.uk
+ organisation_type: institution
+
+tcosmasjf:
+ name: The College Of St. Mark And St. John Foundation
+ domain: www.marjon.ac.uk
+ organisation_type: institution
+
+tcfdad:
+ name: The Conservatoire For Dance And Drama
+ domain: www.cdd.ac.uk
+ organisation_type: institution
+
+tiocrrch:
+ name: "The Institute Of Cancer Research: Royal Cancer Hospital"
+ domain: www.icr.ac.uk
+ organisation_type: institution
+
+tlifpa:
+ name: The Liverpool Institute For Performing Arts
+ domain: www.lipa.ac.uk
+ organisation_type: institution
+
+tmmu:
+ name: The Manchester Metropolitan University
+ domain: www.mmu.ac.uk
+ organisation_type: institution
+
+ou:
+ name: The Open University
+ domain: www.open.ac.uk
+ organisation_type: institution
+
+qub:
+ name: The Queen's University Of Belfast
+ domain: www.qub.ac.uk
+ organisation_type: institution
+
+rgu:
+ name: The Robert Gordon University
+ domain: www.rgu.ac.uk
+ organisation_type: institution
+
+rca:
+ name: The Royal College Of Art
+ domain: www.rca.ac.uk
+ organisation_type: institution
+
+rvc:
+ name: The Royal Veterinary College
+ domain: www.rvc.ac.uk
+ organisation_type: institution
+
+tsopuol:
+ name: The School Of Pharmacy University Of London
+ domain: www.pharmacy.ac.uk
+ organisation_type: institution
+
+tuob:
+ name: The University Of Bath
+ domain: www.bath.ac.uk
+ organisation_type: institution
+
+tuobo:
+ name: The University Of Bolton
+ domain: www.bolton.ac.uk
+ organisation_type: institution
+
+tuobu:
+ name: The University Of Buckingham
+ domain: www.buckingham.ac.uk
+ organisation_type: institution
+
+tuoch:
+ name: The University Of Chichester
+ domain: www.chi.ac.uk
+ organisation_type: institution
+
+tuocu:
+ name: The University Of Cumbria
+ domain: www.cumbria.ac.uk
+ organisation_type: institution
+
+tuom:
+ name: The University Of Manchester
+ domain: www.manchester.ac.uk
+ organisation_type: institution
+
+tuon:
+ name: The University Of Northampton
+ domain: www.northampton.ac.uk
+ organisation_type: institution
+
+tuowl:
+ name: The University Of West London
+ domain: www.uwl.ac.uk
+ organisation_type: institution
+
+tuow:
+ name: The University Of Westminster
+ domain: www.westminster.ac.uk
+ organisation_type: institution
+
+tlcomadl:
+ name: Trinity Laban Conservatoire Of Music And Dance Ltd
+ domain: www.trinitylaban.ac.uk
+ organisation_type: institution
+
+ucsl:
+ name: University Campus Suffolk Ltd
+ domain: www.ucs.ac.uk
+ organisation_type: institution
+
+ucb:
+ name: University College Birmingham
+ domain: www.ucb.ac.uk
+ organisation_type: institution
+
+ucf:
+ name: University College Falmouth
+ domain: www.falmouth.ac.uk
+ organisation_type: institution
+
+ucl:
+ name: University College London
+ domain: www.ucl.ac.uk
+ organisation_type: institution
+
+uftca:
+ name: University For The Creative Arts
+ domain: www.ucreative.ac.uk
+ organisation_type: institution
+
+uoa:
+ name: University Of Aberdeen
+ domain: www.abdn.ac.uk
+ organisation_type: institution
+
+uoad:
+ name: University Of Abertay Dundee
+ domain: www.abertay.ac.uk
+ organisation_type: institution
+
+uobe:
+ name: University Of Bedfordshire
+ domain: www.beds.ac.uk
+ organisation_type: institution
+
+uobi:
+ name: University Of Birmingham
+ domain: www.birmingham.ac.uk
+ organisation_type: institution
+
+uobra:
+ name: University Of Bradford
+ domain: www.bradford.ac.uk
+ organisation_type: institution
+
+uobrig:
+ name: University Of Brighton
+ domain: www.brighton.ac.uk
+ organisation_type: institution
+
+uobris:
+ name: University Of Bristol
+ domain: www.bristol.ac.uk
+ organisation_type: institution
+
+uoc:
+ name: University Of Cambridge
+ domain: www.cam.ac.uk
+ organisation_type: institution
+
+uocl:
+ name: University Of Central Lancashire
+ domain: www.uclan.ac.uk
+ organisation_type: institution
+
+uoch:
+ name: University Of Chester
+ domain: www.chester.ac.uk
+ organisation_type: institution
+
+uod:
+ name: University Of Derby
+ domain: www.derby.ac.uk
+ organisation_type: institution
+
+uodu:
+ name: University Of Dundee
+ domain: www.dundee.ac.uk
+ organisation_type: institution
+
+uodur:
+ name: University Of Durham
+ domain: www.dur.ac.uk
+ organisation_type: institution
+
+uoea:
+ name: University Of East Anglia
+ domain: www.uea.ac.uk
+ organisation_type: institution
+
+uoel:
+ name: University Of East London
+ domain: www.uel.ac.uk
+ organisation_type: institution
+
+uoe:
+ name: University Of Edinburgh
+ domain: www.ed.ac.uk
+ organisation_type: institution
+
+uoes:
+ name: University Of Essex
+ domain: www.essex.ac.uk
+ organisation_type: institution
+
+uoex:
+ name: University Of Exeter
+ domain: www.exeter.ac.uk
+ organisation_type: institution
+
+uogpm:
+ name: University Of Glamorgan / Prifysgol Morgannwg
+ domain: www.glam.ac.uk
+ organisation_type: institution
+
+uog:
+ name: University Of Glasgow
+ domain: www.gla.ac.uk
+ organisation_type: institution
+
+uoglo:
+ name: University Of Gloucestershire
+ domain: www.glos.ac.uk
+ organisation_type: institution
+
+uogr:
+ name: University Of Greenwich
+ domain: www.greenwich.ac.uk
+ organisation_type: institution
+
+uoh:
+ name: University Of Hertfordshire
+ domain: www.herts.ac.uk
+ organisation_type: institution
+
+uohud:
+ name: University Of Huddersfield
+ domain: www.hud.ac.uk
+ organisation_type: institution
+
+uohul:
+ name: University Of Hull
+ domain: www.hull.ac.uk
+ organisation_type: institution
+
+uokee:
+ name: University Of Keele
+ domain: www.keele.ac.uk
+ organisation_type: institution
+
+uoken:
+ name: University Of Kent
+ domain: www.kent.ac.uk
+ organisation_type: institution
+
+uola:
+ name: University Of Lancaster
+ domain: www.lancs.ac.uk
+ organisation_type: institution
+
+uole:
+ name: University Of Leeds
+ domain: www.leeds.ac.uk
+ organisation_type: institution
+
+uolei:
+ name: University Of Leicester
+ domain: www.le.ac.uk
+ organisation_type: institution
+
+uoli:
+ name: University Of Lincoln
+ domain: www.lincoln.ac.uk
+ organisation_type: institution
+
+uoliv:
+ name: University Of Liverpool
+ domain: www.liv.ac.uk
+ organisation_type: institution
+
+uolo:
+ name: University Of London
+ domain: www.lon.ac.uk
+ organisation_type: institution
+
+uonut:
+ name: University Of Newcastle Upon Tyne
+ domain: www.ncl.ac.uk
+ organisation_type: institution
+
+uonan:
+ name: University Of Northumbria At Newcastle
+ domain: www.northumbria.ac.uk
+ organisation_type: institution
+
+uon:
+ name: University Of Nottingham
+ domain: www.nottingham.ac.uk
+ organisation_type: institution
+
+uoo:
+ name: University Of Oxford
+ domain: www.ox.ac.uk
+ organisation_type: institution
+
+uop:
+ name: University Of Plymouth
+ domain: www.plymouth.ac.uk
+ organisation_type: institution
+
+uopo:
+ name: University Of Portsmouth
+ domain: www.port.ac.uk
+ organisation_type: institution
+
+uor:
+ name: University Of Reading
+ domain: www.reading.ac.uk
+ organisation_type: institution
+
+uosa:
+ name: University Of Salford
+ domain: www.salford.ac.uk
+ organisation_type: institution
+
+uosh:
+ name: University Of Sheffield
+ domain: www.shef.ac.uk
+ organisation_type: institution
+
+uoso:
+ name: University Of Southampton
+ domain: www.soton.ac.uk
+ organisation_type: institution
+
+uosa:
+ name: University Of St Andrews
+ domain: www.st-andrews.ac.uk
+ organisation_type: institution
+
+uosti:
+ name: University Of Stirling
+ domain: www.stir.ac.uk
+ organisation_type: institution
+
+uostr:
+ name: University Of Strathclyde
+ domain: www.strath.ac.uk
+ organisation_type: institution
+
+uosu:
+ name: University Of Sunderland
+ domain: www.sunderland.ac.uk
+ organisation_type: institution
+
+uosur:
+ name: University Of Surrey
+ domain: www.surrey.ac.uk
+ organisation_type: institution
+
+uosus:
+ name: University Of Sussex
+ domain: www.sussex.ac.uk
+ organisation_type: institution
+
+uotal:
+ name: "University Of The Arts, London"
+ domain: www.arts.ac.uk
+ organisation_type: institution
+
+uothai:
+ name: University Of The Highlands And Islands
+ domain: www.uhi.ac.uk
+ organisation_type: institution
+
+uotwoeb:
+ name: "University Of The West Of England, Bristol"
+ domain: www.uwe.ac.uk
+ organisation_type: institution
+
+uotwos:
+ name: University Of The West Of Scotland
+ domain: www.uws.ac.uk
+ organisation_type: institution
+
+uou:
+ name: University Of Ulster
+ domain: www.ulster.ac.uk
+ organisation_type: institution
+
+uowpc:
+ name: University Of Wales Prifysgol Cymru
+ domain: www.wales.ac.uk
+ organisation_type: institution
+
+uown:
+ name: "University Of Wales, Newport"
+ domain: www.newport.ac.uk
+ organisation_type: institution
+
+uowtsd:
+ name: "University Of Wales: Trinity Saint David"
+ domain: www.trinitysaintdavid.ac.uk
+ organisation_type: institution
+
+uowa:
+ name: University Of Warwick
+ domain: www.warwick.ac.uk
+ organisation_type: institution
+
+uowi:
+ name: University Of Winchester
+ domain: www.winchester.ac.uk
+ organisation_type: institution
+
+uowol:
+ name: University Of Wolverhampton
+ domain: www.wlv.ac.uk
+ organisation_type: institution
+
+uowor:
+ name: University Of Worcester
+ domain: www.worc.ac.uk
+ organisation_type: institution
+
+uoy:
+ name: University Of York
+ domain: www.york.ac.uk
+ organisation_type: institution
+
+wc:
+ name: Writtle College
+ domain: www.writtle.ac.uk
+ organisation_type: institution
+
+ysju:
+ name: York St John University
+ domain: www.yorksj.ac.uk
+ organisation_type: institution
\ No newline at end of file
diff --git a/test/fixtures/pages.yml b/test/fixtures/pages.yml
new file mode 100644
index 0000000000..65859eea9a
--- /dev/null
+++ b/test/fixtures/pages.yml
@@ -0,0 +1,23 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# title: MyString
+# body_text: MyText
+# slug: MyString
+# menu: 1
+# menu_position: 1
+# target_url: MyString
+# location: MyString
+# public: false
+# organisation_id: 1
+#
+#two:
+# title: MyString
+# body_text: MyText
+# slug: MyString
+# menu: 1
+# menu_position: 1
+# target_url: MyString
+# location: MyString
+# public: false
+# organisation_id: 1
diff --git a/test/fixtures/phases.yml b/test/fixtures/phases.yml
new file mode 100644
index 0000000000..7a3194b225
--- /dev/null
+++ b/test/fixtures/phases.yml
@@ -0,0 +1,63 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+DCC_phase_1:
+ title: "DCC Data Management Questions"
+ number: 1
+ dmptemplate: dcc_template
+
+ahrc_template_1:
+ title: "AHRC Data Management Questions"
+ number: 1
+ description: "A Technical Plan should be no more than four pages long and provided for all applications where digital outputs or digital technologies are an essential part to the planned research outcomes.
"
+ external_guidance_url: http://www.ahrc.ac.uk/Funding-Opportunities/Research-funding/RFG/Application-guidance/Pages/Technical-Plan.aspx
+ dmptemplate: ahrc_template
+
+bbsrc_template_1:
+ title: "BBSRC Data Management Questions"
+ number: 1
+ description: "All applications seeking research grant funding from BBSRC must submit a statement on data sharing. This should include concise plans for data management and sharing as part of research grant proposal or provide explicit reasons why data sharing is not possible or appropriate. The “statement on data sharing” will be included as an additional page in the case for support.
"
+ external_guidance_url: http://www.bbsrc.ac.uk/web/FILES/Policies/data-sharing-policy.pdf
+ dmptemplate: bbsrc_template
+
+cruk_template_1:
+ title: "CRUK Data Management Questions"
+ number: 1
+ description: "All applicants seeking funding from Cancer Research UK will be required to submit a data sharing plan as part of their research grant proposal. If data sharing is not appropriate, applicants must include a clear explanation why. The data sharing plan will be reviewed as part of the funding decision.
"
+ external_guidance_url: http://www.cancerresearchuk.org/science/funding/terms-conditions/funding-policies/policy-data-sharing/data-sharing-guidelines/
+ dmptemplate: cruk_template
+
+esrc_template_1:
+ title: "ESRC Data Management Questions"
+ number: 1
+ description: "The ESRC requires that all applicants seeking ESRC funding include a statement on data sharing in the relevant section of the Je-S application form. If data sharing is not possible, the applicant must present a strong argument to justify their case.
"
+ external_guidance_url: http://www.esrc.ac.uk/_images/Research_Data_Policy_2010_tcm8-4595.pdf
+ dmptemplate: esrc_template
+
+nerc_template_1:
+ title: "Outline for application"
+ number: 1
+ description: "NERC proposals should normally be accompanied by a Case for Support, and the length of these is specific to each scheme. In all cases this length should be increased by one page to be used for the Outline Data Management Plan.
"
+ external_guidance_url: http://www.nerc.ac.uk/research/sites/data/documents/odmp-guidance.pdf
+ dmptemplate: nerc_template
+
+nerc_template_2:
+ title: "Detail following award"
+ number: 2
+ description: "The Case for Support for successful proposals will be made available to the NERC Environmental Data Centres and, where appropriate, used to draft, in collaboration with the Principal Investigator, a full Data Management Plan (DMP). This full DMP should be mutually agreed between the Data Centre and the Principal Investigator within three months of the start date of the grant.
"
+ external_guidance_url: http://www.nerc.ac.uk/research/sites/data/documents/dmp-template.pdf
+ dmptemplate: nerc_template
+
+mrc_template_1:
+ title: "MRC Data Management Questions"
+ number: 1
+ dmptemplate: mrc_template
+
+stfc_template_1:
+ title: "STFC Data Management Questions"
+ number: 1
+ dmptemplate: stfc_template
+
+wellcome_template_1:
+ title: "Wellcome Trust Data Management Questions"
+ number: 1
+ dmptemplate: wellcome_template
\ No newline at end of file
diff --git a/test/fixtures/plan_sections.yml b/test/fixtures/plan_sections.yml
new file mode 100644
index 0000000000..3c7cecd422
--- /dev/null
+++ b/test/fixtures/plan_sections.yml
@@ -0,0 +1,15 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# edit: false
+# at: 2013-06-11 15:17:04
+# user_editing_id: 1
+# section_id: 1
+# plan_id: 1
+#
+#two:
+# edit: false
+# at: 2013-06-11 15:17:04
+# user_editing_id: 1
+# section_id: 1
+# plan_id: 1
diff --git a/test/fixtures/plans.yml b/test/fixtures/plans.yml
new file mode 100644
index 0000000000..6b91b54dcd
--- /dev/null
+++ b/test/fixtures/plans.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# locked: false
+# project_id: 1
+# version_id: 1
+#
+#two:
+# locked: false
+# project_id: 1
+# version_id: 1
diff --git a/test/fixtures/project_groups.yml b/test/fixtures/project_groups.yml
new file mode 100644
index 0000000000..8130ab8788
--- /dev/null
+++ b/test/fixtures/project_groups.yml
@@ -0,0 +1,21 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# project_creator: false
+# project_editor: false
+# user_id: 1
+# project_id: 1
+#
+#two:
+# project_creator: false
+# project_editor: false
+# user_id: 1
+# project_id: 1
+
+<% 4.times do |n| %>
+ many_projects_group_<%= n + 1 %>:
+ project_creator: true
+ project_editor: true
+ user: with_many_projects
+ project: test_plan<%= "_#{n + 1}" if n > 0 %>
+<% end %>
diff --git a/test/fixtures/projects.yml b/test/fixtures/projects.yml
new file mode 100644
index 0000000000..fc60a748f2
--- /dev/null
+++ b/test/fixtures/projects.yml
@@ -0,0 +1,26 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+#two:
+# title: MyString
+# note: MyText
+# locked: false
+# dmptemplate_id: 1
+
+test_plan:
+ title: "AHRC Template project"
+ dmptemplate: ahrc_template
+ organisation: ahrc
+
+test_plan_2:
+ title: "AHRC Template second project"
+ dmptemplate: ahrc_template_2
+ organisation: ahrc
+
+test_plan_3:
+ title: "DCC Template project"
+ dmptemplate: dcc_template
+ organisation: dcc
+
+test_plan_4:
+ title: "DMP Template project"
+ dmptemplate: dmp_template
+ organisation: dcc
\ No newline at end of file
diff --git a/test/fixtures/questions.yml b/test/fixtures/questions.yml
new file mode 100644
index 0000000000..2890daea4e
--- /dev/null
+++ b/test/fixtures/questions.yml
@@ -0,0 +1,775 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#Administrative Data
+
+related_policies:
+ text: "Related Policies:"
+ question_type: Text
+ guidance: " - Are there any existing procedures that you will base your approach on?
- Does your department/group have data management guidelines?
- Does your institution have a data protection or security policy that you will follow? - Does your institution have a Research Data Management (RDM) policy?
- Does your funder have a Research Data Management policy?
- Are there any formal standards that you will adopt?
List any other relevant funder, institutional, departmental or group policies on data management, data sharing and data security. Some of the information you give in the remainder of the DMP will be determined by the content of other policies. If so, point/link to them here.
"
+ number: 1
+ section: administrative_data
+ themes: related_policies
+
+#Data Collection
+
+what_data_will_you_collect_or_create:
+ text: What data will you collect or create?
+ question_type: Text
+ guidance: " - What type, format and volume of data?
- Do your chosen formats and software enable sharing and long-term access to the data?
- Are there any existing data that you can reuse?
Give a brief description of the data, including any existing data or third-party sources that will be used, in each case noting its content, type and coverage. Outline and justify your choice of format and consider the implications of data format and data volumes in terms of storage, backup and access.
"
+ number: 1
+ section: data_collection
+ themes: data_format, data_volumes, data_type, existing_data, description_of_data_content
+
+how_will_the_data_be_collected_or_created:
+ text: How will the data be collected or created?
+ question_type: Text
+ guidance: " - What standards or methodologies will you use?
- How will you structure and name your folders and files?
- How will you handle versioning?
- What quality assurance processes will you adopt?
Outline how the data will be collected/created and which community data standards (if any) will be used. Consider how the data will be organised during the project, mentioning for example naming conventions, version control and folder structures. Explain how the consistency and quality of data collection will be controlled and documented. This may include processes such as calibration, repeat samples or measurements, standardised data capture or recording, data entry validation, peer review of data or representation with controlled vocabularies.
"
+ number: 2
+ section: data_collection
+ themes: data_capture_methods, data_quality
+
+#Documentation and Metadata
+
+what_documentation_and_metadata_will_acompany_the_data:
+ text: What documentation and metadata will acompany the data?
+ question_type: Text
+ guidance: " - What information is needed for the data to be to be read and interpreted in the future?
- How will you capture / create this documentation and metadata?
- What metadata standards will you use and why?
Describe the types of documentation that will accompany the data to help secondary users to understand and reuse it. This should at least include basic details that will help people to find the data, including who created or contributed to the data, its title, date of creation and under what conditions it can be accessed.
Documentation may also include details on the methodology used, analytical and procedural information, definitions of variables, vocabularies, units of measurement, any assumptions made, and the format and file type of the data. Consider how you will capture this information and where it will be recorded. Wherever possible you should identify and use existing community standards.
"
+ number: 1
+ section: documentation_and_metadata
+ themes: metadata_capture, documentation, metadata_standards
+
+#Ethics and Legal Compliance
+
+how_will_you_manage_any_ethical_issues:
+ text: How will you manage any ethical issues?
+ question_type: Text
+ guidance: " - Have you gained consent for data preservation and sharing?
- How will you protect the identity of participants if required? e.g. via anonymisation
- How will sensitive data be handled to ensure it is stored and transferred securely?
Ethical issues affect how you store data, who can see/use it and how long it is kept. Managing ethical concerns may include: anonymisation of data; referral to departmental or institutional ethics committees; and formal consent agreements. You should show that you are aware of any issues and have planned accordingly. If you are carrying out research involving human participants, you must also ensure that consent is requested to allow data to be shared and reused.
"
+ number: 1
+ section: ethics_and_legal_compliance
+ themes: ethical_issues, data_security
+
+how_will_you_manage_copyright_and_intellectual_property_rights_ipr_issues:
+ text: How will you manage copyright and Intellectual Property Rights (IPR) issues?
+ question_type: Text
+ guidance: " - Who owns the data?
- How will the data be licensed for reuse?
- Are there any restrictions on the reuse of third-party data?
- Will data sharing be postponed / restricted e.g. to publish or seek patents?
State who will own the copyright and IPR of any data that you will collect or create, along with the licence(s) for its use and reuse. For multi-partner projects, IPR ownership may be worth covering in a consortium agreement. Consider any relevant funder, institutional, departmental or group policies on copyright or IPR. Also consider permissions to reuse third-party data and any restrictions needed on data sharing.
"
+ number: 2
+ section: ethics_and_legal_compliance
+ themes: licensing_of_existing_data, ipr_ownership_and_licencing
+
+#Storage and Backup
+
+how_will_the_data_be_stored_and_backed_up_during_the_research:
+ text: How will the data be stored and backed up during the research?
+ question_type: Text
+ guidance: " - Do you have sufficient storage or will you need to include charges for additional services?
- How will the data be backed up?
- Who will be responsible for backup and recovery?
- How will the data be recovered in the event of an incident?
State how often the data will be backed up and to which locations. How many copies are being made? Storing data on laptops, computer hard drives or external storage devices alone is very risky. The use of robust, managed storage provided by university IT teams is preferable. Similarly, it is normally better to use automatic backup services provided by IT Services than rely on manual processes. If you choose to use a third-party service, you should ensure that this does not conflict with any funder, institutional, departmental or group policies, for example in terms of the legal jurisdiction in which data are held or the protection of sensitive data.
"
+ number: 1
+ section: storage_and_backup
+ themes: active_data_storage, backup_procedures
+
+how_will_you_manage_access_and_security:
+ text: How will you manage access and security?
+ question_type: Text
+ guidance: " - What are the risks to data security and how will these be managed?
- How will you control access to keep the data secure?
- How will you ensure that collaborators can access your data securely?
- If creating or collecting data in the field how will you ensure its safe transfer into your main secured systems?
If your data is confidential (e.g. personal data not already in the public domain, confidential information or trade secrets), you should outline any appropriate security measures and note any formal standards that you will comply with e.g. ISO 27001."
"
+ number: 2
+ section: storage_and_backup
+ themes: data_security, managed_access_procedures
+
+#Selection and Preservation
+
+which_data_are_of_long-term_value_and_should_be_retained_shared_and-or_preserved:
+ text: Which data are of long-term value and should be retained, shared, and/or preserved?
+ question_type: Text
+ guidance: " - What data must be retained/destroyed for contractual, legal, or regulatory purposes?
- How will you decide what other data to keep?
- What are the foreseeable research uses for the data?
- How long will the data be retained and preserved?
Consider how the data may be reused e.g. to validate your research findings, conduct new studies, or for teaching. Decide which data to keep and for how long. This could be based on any obligations to retain certain data, the potential reuse value, what is economically viable to keep, and any additional effort required to prepare the data for data sharing and preservation. Remember to consider any additional effort required to prepare the data for sharing and preservation, such as changing file formats.
"
+ number: 1
+ section: selection_and_preservation
+ themes: data_selection
+
+what_is_the_long-term_preservation_plan_for_the_dataset:
+ text: What is the long-term preservation plan for the dataset?
+ question_type: Text
+ guidance: " - Where e.g. in which repository or archive will the data be held?
- What costs if any will your selected data repository or archive charge?
- Have you costed in time and effort to prepare the data for sharing / preservation?
Consider how datasets that have long-term value will be preserved and curated beyond the lifetime of the grant. Also outline the plans for preparing and documenting data for sharing and archiving. If you do not propose to use an established repository, the data management plan should demonstrate that resources and systems will be in place to enable the data to be curated effectively beyond the lifetime of the grant.
"
+ number: 2
+ section: selection_and_preservation
+ themes: preservation_plan
+
+#Data Sharing
+
+how_will_you_share_the_data:
+ text: How will you share the data?
+ question_type: Text
+ guidance: " - How will potential users find out about your data?
- With whom will you share the data, and under what conditions?
- Will you share data via a repository, handle requests directly or use another mechanism?
- When will you make the data available?
- Will you pursue getting a persistent identifier for your data?
Consider where, how, and to whom data with acknowledged long-term value should be made available. The methods used to share data will be dependent on a number of factors such as the type, size, complexity and sensitivity of data. If possible, mention earlier examples to show a track record of effective data sharing. Consider how people might acknowledge the reuse of your data.
"
+ number: 1
+ section: data_sharing
+ themes: method_for_data_sharing
+
+are_any_restrictions_on_data_sharing_required:
+ text: Are any restrictions on data sharing required?
+ question_type: Text
+ guidance: " - What action will you take to overcome or minimise restrictions?
- For how long do you need exclusive use of the data and why?
- Will a data sharing agreement (or equivalent) be required?
Outline any expected difficulties in sharing data with acknowledged long-term value, along with causes and possible measures to overcome these. Restrictions may be due to confidentiality, lack of consent agreements or IPR, for example. Consider whether a non-disclosure agreement would give sufficient protection for confidential data.
"
+ number: 2
+ section: data_sharing
+ themes: restrictions_on_sharing, embargo_period
+
+#Responsibilities and Resources
+
+who_will_be_responsible_for_data_management:
+ text: Who will be responsible for data management?
+ question_type: Text
+ guidance: " - Who is responsible for implementing the DMP, and ensuring it is reviewed and revised?
- Who will be responsible for each data management activity?
- How will responsibilities be split across partner sites in collaborative research projects?
- Will data ownership and responsibilities for RDM be part of any consortium agreement or contract agreed between partners?
Outline the roles and responsibilities for all activities e.g. data capture, metadata production, data quality, storage and backup, data archiving & data sharing. Consider who will be responsible for ensuring relevant policies will be respected. Individuals should be named where possible.
"
+ number: 1
+ section: responsibilities_and_resources
+ themes: responsibilities
+
+what_resources_will_you_require_to_deliver_your_plan:
+ text: What resources will you require to deliver your plan?
+ question_type: Text
+ guidance: " - Is additional specialist expertise (or training for existing staff) required?
- Do you require hardware or software which is additional or exceptional to existing institutional provision?
- Will charges be applied by data repositories?
Carefully consider any resources needed to deliver the plan, e.g. software, hardware, technical expertise, etc. Where dedicated resources are needed, these should be outlined and justified.
"
+ number: 2
+ section: responsibilities_and_resources
+ themes: resourcing_skills_and_training, resourcing_hardware_and_software, resourcing_preservation_and_data_sharing
+
+#Multiple Choice
+
+#single_select_box:
+# text: Example select box limited to one option
+# multiple_choice: true
+# multiple_permitted: false
+# is_expanded: false
+# number: 1
+# section: multiple_choice
+#
+#multiple_select_box:
+# text: Example select box allowing multiple options
+# multiple_choice: true
+# multiple_permitted: true
+# is_expanded: false
+# number: 2
+# section: multiple_choice
+#
+#radio_button:
+# text: Example radio button
+# multiple_choice: true
+# multiple_permitted: false
+# is_expanded: true
+# number: 3
+# section: multiple_choice
+#
+#checkbox:
+# text: Example checkbox
+# multiple_choice: true
+# multiple_permitted: true
+# is_expanded: true
+# number: 4
+# section: multiple_choice
+
+ahrc_1_1:
+ text: Summary of Digital Outputs and Digital Technologies
+ guidance: "You should provide a brief and clear description of the digital output or digital technology being proposed, considering the following aspects: purpose, source data, content, functionality, use and its relationship to the research questions. You should identify the type of access envisaged, if applicable, such as 'freely available online'.
The summary should provide clear overview of what you intend to achieve technically, to enable reviewers to assess whether the plans for achieving this are appropriate. You should provide a level of detail which is appropriate to the digital output or digital technology being proposed and its cost and status within the project.
"
+ number: 1
+ section: ahrc_1
+ themes: description_of_data_content, method_for_data_sharing
+
+ahrc_2_1:
+ text: "Technical Methodology: Standards and Formats"
+ guidance: "You should provide information about your choice of data and file formats. You must provide any relevant vital statistics relating to the data, such as size, quantity and duration. Although such statistics might need to rely on estimation, you should provide the reasoning behind your calculations. You should give your reasons for using the standards or formats chosen.
"
+ number: 1
+ section: ahrc_2
+ themes: data_format, data_volumes, data_type
+
+ahrc_2_2:
+ text: "Technical Methodology: Hardware and Software"
+ guidance: "
You should provide information about and the rationale for any hardware or software which will be used to support the project’s research methodology, which is additional or exceptional to conventional desk-based research and institutional provision. They should be included in the Justification of Resources and cross-referenced if there is an associated budget line. Where necessary you should produce additional justification of the use of such items.
You must write ‘Not applicable’ if this section is not relevant to the type of digital output or digital technology proposed.
"
+ number: 2
+ section: ahrc_2
+ themes: resourcing_hardware_and_software
+
+ahrc_2_3:
+ text: "Technical Methodology Data Acquisition, Processing, Analysis and Use"
+ guidance: "You should provide information about the process of technical development, showing how the standards and formats described in section 2.a and the hardware and software described in section 2.b relate to each other. You must show that you have considered how you will achieve your digital output or digital technology in practice, including issues of timetabling.
You should consider the technical development process from the point of data capture or data creation through to final delivery (in the case of a digital output) or analysis (in the case of a digital process). You should consider issues such as backup, monitoring, quality control and internal documentation where relevant, identifying procedures which are appropriate to the research environment. For example Technical Reviewers acknowledge that the backup procedures which are possible during fieldwork might be very different to those which are possible within an office environment.
This section needs to relate to the timetable and milestones given in the Case for Support as well as the project’s overall research methodology. The Technical Reviewer will be assessing the alignment of the technical development process with other project activities for logic and timeliness.
"
+ number: 3
+ section: ahrc_2
+ themes: data_capture_methods, data_quality, data_organisation, documentation, metadata_capture, metadata_standards, backup_procedures
+
+ahrc_3_1:
+ text: "Technical Support and Relevant Experience"
+ guidance: ""
+ number: 1
+ section: ahrc_3
+ themes: resourcing_skills_and_training, responsibilities
+
+ahrc_4_1:
+ text: "Preserving Your Data"
+ guidance: "Preservation of digital outputs is necessary in order for them to endure changes in the technological environment and remain potentially re-usable in the future. In this section you must state what, if any, digital outputs of your project you intend to preserve beyond the period of funding.
The length and cost of preservation should be proportionate to the value and significance of the digital outputs. If you believe that none of these should be preserved this must be justified, and if the case is a good one the application will not be prejudiced.
You must consider preservation in four ways: what, where, how and for how long. You must also consider any institutional support needed in order to carry out these plans, whether from an individual, facility, organisation or service.
You should think about the possibilities for re-use of your data in other contexts and by other users, and connect this as appropriate with your plans for dissemination and Pathways to Impact.Where there is potential for re-usability, you should use standards and formats that facilitate this.
The Technical Reviewer will be looking for evidence that you understand the reasons for the choice of technical standards and formats described in Section 2.a Technical Methodology: Standards and Formats.
You should describe the types of documentation which will accompany the data. Documentation in this sense means technical documentation as well as user documentation. It includes, for instance, technical description, code commenting, project-build guidelines, the documentation of technical decisions and resource metadata which is additional to the standards which you have described in Section 2.a. Not all types of documentation will be relevant to a project and the quantity of documentation proposed should be proportionate to the envisaged value of the data.
"
+ number: 1
+ section: ahrc_4
+ themes: preservation_plan, period_of_preservation, resourcing_preservation_and_data_sharing, documentation
+
+ahrc_4_2:
+ text: "Ensuring Continued Accessibility and Use of Your Digital Outputs"
+ guidance: "In this section you must provide information about any plans for ensuring that digital outputs remain sustainable in the sense of immediately accessible and usable beyond the period of funding. There are costs to ensuring sustainability in this sense over and above the costs of preservation. The project's sustainability plan should therefore be proportionate to the envisaged longer-term value of the data for the research community and should be closely related to your plans for dissemination and Pathways to Impact.
If you believe that digital outputs should not be sustained beyond the period of funding then this should be justified. It is not mandatory to sustain all digital outputs. While you should consider the long-term value of the digital outputs to the research community, where they are purely ancillary to a project’s research outputs there may not be a case for sustaining them (though there would usually be a case for preservation).
You must consider the sustainability of your digital outputs in five ways: what, where, how, for how long, and how the cost will be covered. You must make appropriate provision for user consultation and user testing in this connection, and plan the development of suitable user documentation.
You should provide justification if you do not envisage open, public access. A case can be made for charging for or otherwise limiting access, but the default expectation is that access will be open. The Technical Reviewer will be looking for realistic commitments to sustaining public access in line with affordability and the longer-term value of the digital output.
You must consider any institutional support needed in order to carry out these plans, if not covered under Section 3, as well as the cost of keeping the digital output publicly available in the future, including issues relating to maintenance, infrastructure and upgrade (such as the need to modify aspects of a web interface or software application in order to account for changes in the technological environment). In order to minimise sustainability costs, it is generally useful that the expertise involved in the development of your project is supported by expertise in your own or a partner institution.
A sustainability plan does not necessarily mean a requirement to generate income or prevent resources from being freely available. Rather it is a requirement to consider the direct costs and expertise of maintaining digital outputs for continued access. Some applicants might be able to demonstrate that there will be no significant sustainability problems with their digital output; in some cases the university’s computing services or library might provide a firm commitment to sustaining the resource for a specified period; others might see the benefit of Open Source community development models. You should provide reassurances of sustainability which are proportionate to the envisaged longer-term value of the digital outputs for the research community.
When completing this section, you should consider the potential impact of the data on research in your field (if research in the discipline will be improved through the creation of the digital output, how will it be affected if the resource then disappears?), and make the necessary connections with your Impact Plan. You must factor in the effects of any IP, copyright and ethical issues during the period in which the digital output will be publicly accessible, connecting what you say with the relevant part of your Case for Support.
You must identify whether or not you envisage the academic content (as distinct from the technology) of the digital output being extended or updated beyond the period of funding, addressing the following issues: how this will be done, by who and at what cost. You will need to show how the cost of this will be sustained after the period of funding ends.
"
+ number: 2
+ section: ahrc_4
+ themes: resourcing_preservation_and_data_sharing, managed_access_procedures, data_repository, method_for_data_sharing, timeframe_for_data_sharing
+
+bbsrc_1_1:
+ text: "Data areas and data types - the volume, type and content of data that will be generated e.g. experimental measurements, models, records and images"
+ guidance: "BBSRC recognises that effective data sharing is already practiced in certain areas and expects this to continue. BBSRC supports, either directly or indirectly, a number of such resources. Data sharing in other areas is also expected where there is a strong scientific case and where it is cost effective.
BBSRC has identified a number of areas where there is a particularly strong scientific case for data sharing. These are:
- Data arising from high volume experimentation
- Low throughput data arising from long time series or cumulative approaches
- Models generated using systems approaches
BBSRC expects data sharing to take place in these areas."
+ number: 1
+ section: bbsrc_1
+ themes: description_of_data_content, data_type, data_volumes
+
+bbsrc_2_1:
+ text: "Standards and metadata - the standards and methodologies that will be adopted for data collection and management, and why these have been selected"
+ guidance: "Standards are fundamental to effective data sharing. These can include standards for administrative processes, as well as for methodologies relating to data management and data formats. Researchers are expected to make use of current guidance and information on best practice.
It is expected that, in order to maximise the potential for re-use of data, BBSRC researchers should generate and manage data using existing widely accepted formats and methodologies where available. Data released for sharing should be validated and verified in line with accepted best practice and be of high quality. Data should be accompanied by the contextual information or documentation (metadata) needed to provide a secondary user with any necessary details on the origin or manipulation of the data in order to prevent any misuse, misinterpretation or confusion. Where standards for metadata exist, it is expected that these should be adhered to.
BBSRC encourages community development of standards where these do not currently exist or are not widely accepted and provides funding mechanisms for support of this type of activity.
"
+ number: 1
+ section: bbsrc_2
+ themes: data_format, metadata_standards, data_quality, documentation
+
+bbsrc_3_1:
+ text: "Relationship to other data available in public repositories"
+ guidance: ""
+ number: 1
+ section: bbsrc_3
+ themes: existing_data, relationship_to_existing data, licensing_of_existing data
+
+bbsrc_4_1:
+ text: "Secondary use - further intended and/or foreseeable research uses for the completed dataset(s)"
+ guidance: "BBSRC supports the view that those enabling sharing should receive full and appropriate recognition by funders, their academic institutions and new users for promoting secondary research.
Where data are shared through a third party resource or databases, secondary users should acknowledge the source of data. Where data are shared directly from the originator, depending on the level of usage and collaboration either joint authorship or acknowledgement to the data originator may be appropriate. It is also important to ensure that researchers and their research institutions are protected against claims that application of their data led to wrong conclusions/decisions by others: any use made of any data generated by third parties would not come with a warranty of its quality.
Furthermore, BBSRC expects that researchers accessing data have responsibilities to preserve data confidentiality and to observe the ethical and legal obligations pertaining to the data.
"
+ number: 1
+ section: bbsrc_4
+ themes: expected_reuse, audience
+
+bbsrc_5_1:
+ text: "Methods for data sharing - planned mechanisms for making these data available, e.g. through deposition in existing public databases or on request, including access mechanisms where appropriate"
+ guidance: "BBSRC recognises that different approaches to data sharing will be required in different situations and considers that it is most appropriate for researchers to determine their own strategies for data sharing and outline these within their research grant proposal(s). Applicants should consider where, how, and to whom their data should be made available.
In addition, data sharing practices will change as areas of research develop and become more mature. This can be observed by looking at the areas of sequencing (i.e. well established mechanisms in place), microarrays (i.e. standards developed and being implemented) and systems biology (i.e. databases currently not well developed). Consideration should be given to what constitutes good practice in emerging areas of research.
It is expected that data sharing strategies will fall into the two broad categories below.
Data sharing via deposition in an existing database, repository or other community resource is expected where possible and researchers are encouraged to share data through mechanisms affording the widest availability for generating added value and enabling re-use.
Researchers are encouraged to use existing infrastructure to facilitate data sharing where possible. BBSRC funds or otherwise supports a number of such resources. Where no such resources exist, applicants may consider sharing data via other third party mechanisms such as journal websites and / or open access repositories, many of which are now able to capture and share data underpinning publications.
This method of data sharing may be appropriate for areas where suitable third party mechanisms are not available. Researchers are expected to ensure that data are maintained for a period of 10 years after the completion of the research project in suitable accessible formats using established standards where possible such that the data can be made available on request in line with BBSRC guidance on good scientific practice. This may lead to collaboration between the new user and the original data creators, with the responsibilities and rights of all parties agreed at the outset.
Other mechanisms for data sharing may be used where appropriate. These could include sharing data within closed communities or a combination of methods for different datasets. Specific access mechanisms could be appropriate for example where there are ethical considerations, a need to protect confidential data, or other reasons for limiting access.
"
+ number: 1
+ section: bbsrc_5
+ themes: discovery_by_users, method_for_data_sharing, managed_access_procedures, data_repository
+
+bbsrc_6_1:
+ text: "Proprietary data - any restrictions on data sharing due to the need to protect proprietary or patentable data"
+ guidance: "In instances where BBSRC and a commercial partner jointly fund academic research work (for example LINK projects) there may be some restrictions over releasing data. Any such restrictions on data sharing due to co-funding arrangements should be set out in the “statement on data sharing” section of an application and will be considered when a grant application is peer reviewed. Applicants should also ensure they have obtained necessary clearances from relevant collaborators with regards to the content of the proposal including the data sharing plan in line with the BBSRC Research Grants Guide.
"
+ number: 1
+ section: bbsrc_6
+ themes: ipr_ownership_and_licencing, restrictions_on_sharing
+
+bbsrc_7_1:
+ text: "Timeframes - timescales for public release of data"
+ guidance: "The value of data often depends on timeliness. Researchers have a legitimate interest in benefiting from their own time and effort in producing data, but not in prolonged exclusive use of these data. BBSRC expects that all data (with accompanying metadata) should be shared in a timely fashion as soon as it is verified. It is expected that timely release would generally be no later than the release through publication of the main findings and should be in-line with established best practice in the field. Where best practices does not exist release within three years of generation of the dataset is suggested as a guide.
The timescale for release for the data may differ for several reasons, depending on the nature of the data. These reasons may include:
- Scientific Area: Researchers are expected to make data available in-line with established practices within the relevant research community. Examples include:
- Crystallography (Protein Data Bank) - the community has agreed a maximum 12-month delay between publishing the first paper on a structure and making coordinates public for secondary use.
- Sequencing (EMBL Nucleotide Sequence database) – submitted data can be withheld from public access until publication of results but no later.
- Metabolomics (MeT-RO) – Up to a six-month delay in publication can be requested.
- Arabidopsis microarray data (NASC Affymetrix service) – all data are made available after a maximum one-year confidential period.
- Intellectual Property (IP) issues and potential for commercialisation of research outputs: New knowledge generates patentable ideas. BBSRC is also driving a policy of Knowledge Transfer and strongly encourages the commercialisation of IP through various initiatives. BBSRC recognises the need for periods of exclusive use of data but considers that commercialisation of research does not preclude data sharing and should not unduly delay or prevent data sharing. Any IP issues or plans for commercialisation should be highlighted in the case for support of the grant application.
- Length or scope of research project: Data from large studies may be released in waves as they become available or as they are published.
"
+ number: 1
+ section: bbsrc_7
+ themes: timeframe_for_data_sharing
+
+bbsrc_8_1:
+ text: "Format of the final dataset"
+ guidance: ""
+ number: 1
+ section: bbsrc_8
+ themes: data_format
+
+cruk_1_1:
+ text: "The volume, type, content and format of the final dataset"
+ guidance: ""
+ number: 1
+ section: cruk_1
+ themes: description_of_data_content, data_format, data_volumes, data_type
+
+cruk_2_1:
+ text: "The standards that will be utilised for data collection and management"
+ guidance: ""
+ number: 1
+ section: cruk_2
+ themes: data_capture_methods, metadata_standards
+
+cruk_3_1:
+ text: "The metadata, documentation or other supporting material that should accompany the data for it to be interpreted correctly"
+ guidance: "For data sharing to be a success it is important that data are prepared in such a way that those using the dataset have a clear understanding of what the data mean so that they can be used appropriately. To enable this, applicants are encouraged to include with the dataset all the necessary information (metadata) describing the data and their format. This information should include such information as the methodology used to collect data, definitions of variables, units of measurement, any assumptions made, the format of the data, file type of the data etc. To support this researchers are strongly encouraged to utilise community standards to describe and structure data, (e.g. common terminology, minimum information guidelines and standard data exchange formats).
"
+ number: 1
+ section: cruk_3
+ themes: documentation, metadata_capture, data_quality
+
+cruk_4_1:
+ text: "The method used to share data"
+ guidance: "The methods used to share data will be dependent on a number of factors such as the type, size, complexity and sensitivity of data. Data can be shared by any of the following methods:
Investigators sharing under their own auspices may securely send data to a requestor, or upload the data to their institutional website. Investigators should consider using a data-sharing agreement (see below) to impose appropriate limitations on the secondary use of the data.
Through a third party
Investigators can share their data by transferring it to a data archive facility to distribute more widely to the scientific community, to maintain documentation and meet reporting requirements. Data archives are particularly attractive for investigators concerned about managing a large volume of requests for data, vetting frivolous or inappropriate requests, or providing technical assistance for users seeking to help with analyses.
Datasets that cannot be distributed to the general public due to confidentially concerns, or third-party licensing or use agreements that prohibit redistribution, can be accessed through a data enclave. A data enclave provides a controlled secure environment in which eligible researchers can perform analyses using restricted data resources.
Investigators may wish to share their data by a combination of the above methods or in different versions, in order to control the level of access permitted.
"
+ number: 1
+ section: cruk_4
+ themes: discovery_by_users, method_for_data_sharing, data_repository
+
+cruk_5_1:
+ text: "The timescale for public release of data"
+ guidance: "As the value of data is often dependent on its timeliness Cancer Research UK expects that data sharing should occur in a timely manner. Cancer Research UK acknowledges that the investigators who generated the data have a legitimate interest in benefiting from their investment of time and effort and we therefore support the initial investigator having a reasonable period of private use of the data but not prolonged exclusive use.
Cancer Research UK expects data to be released no later than the acceptance for publication of the main findings from the final dataset (unless restrictions from third party agreements or IP protection still apply) or on a timescale in line with the procedures of the relevant research area. For example, for crystallography data there is an agreed 12-month delay between publishing the first paper on a structure and making the co-ordinates public.
With experiments carried out over an extended period of time, (e.g. population based studies), it is reasonable to expect that subsets of data analysed by the investigator(s) be made available for sharing. The investigator(s) can then continue to benefit from further reasonable periods of exclusive analysis while the dataset as a whole matures.
"
+ number: 1
+ section: cruk_5
+ themes: timeframe_for_data_sharing
+
+cruk_6_1:
+ text: "The long-term preservation plan for the dataset"
+ guidance: "Once the funding for a project has ceased researchers should preserve all data resulting from that grant to ensure that data can be used for follow-up or new studies. Cancer Research UK expects that data be preserved and available for sharing with the science community for a minimum period of five years following the end of a research grant.
"
+ number: 1
+ section: cruk_6
+ themes: preservation_plan
+
+cruk_7_1:
+ text: "Whether a data sharing agreement will be required"
+ guidance: " To ensure that data are used appropriately investigators may consider implementing a data sharing agreement that indicates the criteria for data access and conditions for research use. This can ensure the responsibilities of both parties, along with intellectual property, citation and publication rights are agreed at the outset. It may incorporate privacy and confidentiality standards, as needed, to ensure data security at the recipient site and prohibit manipulation of data. For further guidance on managing data access and the development of data sharing agreements please refer to the 'Samples and Data for Cancer Research: Template for Access Policy Development' document available from the NCRI website.
As a minimum, researchers using shared data are expected to acknowledge the investigators who generated the data upon which any published findings are based. When both parties have collaborated using a shared dataset, co-authorship on publications may be more appropriate. Researchers using shared data are also expected to acknowledge Cancer Research UK for supporting the original study.
"
+ number: 1
+ section: cruk_7
+ themes: managed_access_procedures
+
+cruk_8_1:
+ text: "Any reasons why there may be restrictions on data sharing?"
+ guidance: "Data which might have the potential to be exploited commercially or otherwise to deliver patient benefit should be discussed with your technology transfer office and Cancer Research Technology prior to data sharing. Cancer Research UK encourages the appropriate filing of patents and recognises that there may be a need to delay the release of data until patent applications have been filed. Whilst there may be a delay in the release of data due to the application process, appropriate intellectual property protection should not hinder data sharing and may be the best way of ensuring that patient (and public) benefit is delivered. Any intellectual property issues or plans for commercialisation that may affect data sharing should be addressed in the data sharing plan. Cancer Research UK understands that unexpected intellectual property may arise during the course of the study and investigators may need to depart from their data sharing plan to protect intellectual property and for any other necessary steps to be taken. Data sharing may also be affected when co-funding is provided by the private sector (e.g. by a pharmaceutical company) or host institution resulting in some restrictions on the disclosure of data. For example with clinical trials, the Trial Management Group and/or trial sponsor etc may impose restrictions on data access. Any restrictions should be outlined in the data sharing plan and applicants should explore ways data sharing requests can be considered by the body that owns the data.
My research seeks supports from both the public and private sectors. How do I deal with the sharing of data? Where research is funded by a commercial sponsor, restrictions on data sharing may apply in arrangements agreed with the sponsor. Any such restriction(s) should be highlighted in the data management and sharing plan. In the event that researchers apply for or receive commercial funding for any part of their research that Cancer Research UK supports they should advise Cancer Research Technology of the situation without delay.
Investigators carrying out research involving human participants must ensure that consent is obtained to share information; furthermore the necessary legal, ethical and regulatory permissions regarding data sharing should be in place prior to disclosing any data. Every effort must be made to protect the identity of participants and, prior to sharing, data should be anonymised. In addition, any indirect identifiers that may lead to deductive disclosures should be removed to reduce the risk of identification. In most instances, sharing data should be possible without compromising the confidentiality of participants but if there are circumstances where data needs to be restricted due to the inability to protect confidentiality this should be fully addressed in the data management and sharing plan.
"
+ number: 1
+ section: cruk_8
+ themes: restrictions_on_sharing, ipr_ownership_and_licencing, licensing_of_existing_data, ethical_issues
+
+esrc_1_1:
+ text: "An explanation of the existing data sources that will be used by the research project (with references)"
+ guidance: "When creating new data sources, explain why existing data sources can not be re-used. If purchasing or re-using existing data sources, explain whether issues such as copyright and IPR have been addressed to ensure that the data can be shared i.e. explain how you plan to deal with permissions to share data you have created which is derived from data which you do not own.
The following sources can be reviewed for the availability of existing data that could be used:
- Data Catalogue - an integrated catalogue containing over 5,000 datasets covering an extensive range of key economic, social and historical data - both quantitative and qualitative - spanning many disciplines and themes, and with links to census data
- ESRC Research Catalogue - the ESRC's repository of past and present research awards and their outputs
"
+ number: 1
+ section: esrc_1
+ themes: existing_data, licensing_of_existing_data
+
+esrc_1_2:
+ text: "An analysis of the gaps identified between the currently available and required data for the research"
+ guidance: "When creating new data sources, explain why existing data sources can not be re-used. If purchasing or re-using existing data sources, explain whether issues such as copyright and IPR have been addressed to ensure that the data can be shared i.e. explain how you plan to deal with permissions to share data you have created which is derived from data which you do not own.
The following sources can be reviewed for the availability of existing data that could be used:
- Data Catalogue - an integrated catalogue containing over 5,000 datasets covering an extensive range of key economic, social and historical data - both quantitative and qualitative - spanning many disciplines and themes, and with links to census data
- ESRC Research Catalogue - the ESRC's repository of past and present research awards and their outputs
"
+ number: 2
+ section: esrc_1
+ themes: relationship_to_existing_data
+
+esrc_2_1:
+ text: "Data volume and data type, e.g. qualitative or quantitative data"
+ guidance: "Give a brief description of new data which you envisage creating. This information should include how the data will be collected (in line with the proposed research methods), their format (e.g. SPSS, Open Document Format, tab-delimited format, MS Excel), and how they will be documented.
Using standardised and interchangeable or open lossless data formats ensures the long-term usability of data. Clear and detailed data descriptions and annotation, together with user-friendly accompanying documentation on methods and contextual information, makes data easy to understand and interpret and therefore shareable and with long-lasting usability.
"
+ number: 1
+ section: esrc_2
+ themes: data_volumes, data_type
+
+esrc_2_2:
+ text: "Data quality, formats, standards documentation and metadata"
+ guidance: "Give a brief description of new data which you envisage creating. This information should include how the data will be collected (in line with the proposed research methods), their format (e.g. SPSS, Open Document Format, tab-delimited format, MS Excel), and how they will be documented.
Using standardised and interchangeable or open lossless data formats ensures the long-term usability of data. Clear and detailed data descriptions and annotation, together with user-friendly accompanying documentation on methods and contextual information, makes data easy to understand and interpret and therefore shareable and with long-lasting usability.
"
+ number: 2
+ section: esrc_2
+ themes: data_format, metadata_standards, documentation
+
+esrc_2_3:
+ text: "Methodologies for data collection"
+ guidance: "Give a brief description of new data which you envisage creating. This information should include how the data will be collected (in line with the proposed research methods), their format (e.g. SPSS, Open Document Format, tab-delimited format, MS Excel), and how they will be documented.
Using standardised and interchangeable or open lossless data formats ensures the long-term usability of data. Clear and detailed data descriptions and annotation, together with user-friendly accompanying documentation on methods and contextual information, makes data easy to understand and interpret and therefore shareable and with long-lasting usability.
"
+ number: 3
+ section: esrc_2
+ themes: data_capture_methods
+
+esrc_3_1:
+ text: "Quality Assurance"
+ guidance: "Quality control of data is an integral part of a research process. Describe the procedures for quality assurance that will be carried out on the data collected at the time of data collection, data entry, digitisation and data checking.
For example this might include:
- Documenting the calibration of instruments
- Taking duplicate samples or measurements
- Standardised data capture, data entry or recording methods
- Data entry validation techniques
- Methods of transcription
- Peer review of data
"
+ number: 1
+ section: esrc_3
+ themes: data_quality
+
+esrc_3_2:
+ text: "Back-Up"
+ guidance: "Describe the data back-up procedures that you will adopt to ensure the data and metadata are securely stored during the lifetime of the project. You may need to discuss your institution's policy on back-ups. If your data is sensitive (e.g. detailed personal data) you should discuss appropriate security measures which you will be taking.
The methods of version control of data files should also be stated. Version control includes making sure that if the information in one file is altered, the related information in other files is also adapted, as well as keeping track of versions of data files and their locations.
"
+ number: 2
+ section: esrc_3
+ themes: backup_procedures, data_security, data_organisation
+
+esrc_4_1:
+ text: "Plans for management and archiving of collected data"
+ guidance: "Outline your plans for preparing and documenting data for sharing and archiving (unless otherwise agreed). Identify any additional plans for data sharing, if any. A crucial part of making data user-friendly, shareable and with long-lasting usability is to ensure they can be understood and interpreted by other users. This requires clear and detailed data description, annotation and contextual information.
"
+ number: 1
+ section: esrc_4
+ themes: data_selection, preservation_plan, documentation
+
+esrc_5_1:
+ text: "Expected difficulties in data sharing, along with causes and possible measures to overcome these difficulties."
+ guidance: "We require that all applicants seeking ESRC funding include a statement on data sharing in the relevant section of the Je-S application form. If data sharing is not possible, the applicant must present a strong argument to justify their case. We reserve the right to decline the request or demand additional information from the applicant.
We expect grant holders to adhere to the Data Protection Act 1998, which contains eight (enforceable) principles of good practice, applying to anyone processing personal data, including the use of personal data in research. These include obtaining the data subject’s consent or meeting at least one of the ‘necessary’ conditions described in the Act.
The ESRC complies with the requirements of the Freedom of Information Act 2000 that establishes a general right of access to all types of recorded information held by public authorities, including Government Departments and Non-Departmental Public Bodies.
If the Principal Investigator does not state to the contrary in the Je-S application form, it will be assumed that they are willing for their contact details and other relevant information to be shared with the relevant data service provider working with the ESRC.
"
+ number: 1
+ section: esrc_5
+ themes: restrictions_on_sharing, managed_access_procedures
+
+esrc_6_1:
+ text: "Explicit mention of consent, confidentiality, anonymisation and other ethical considerations"
+ guidance: "In facilitating innovative and high quality research, we require that the research we supports will be carried out to a high ethical standard. ESRC grant holders are, therefore, required to adhere to the key principles of ethical research addressed in the ESRC Framework for Research Ethics
"
+ number: 1
+ section: esrc_6
+ themes: ethical_issues
+
+esrc_7_1:
+ text: "Copyright and intellectual property ownership of the data"
+ guidance: " In respect of research grant funding, unless stated otherwise, the ownership of intellectual property and responsibility for its exploitation, rests with the organisation carrying out the research. The ESRC may, in specific cases, reserve the right to retain ownership of the intellectual property and to arrange for it to be exploited for the national benefit in other ways. If exercised, this condition is included in the terms of the relevant award.
In taking responsibility for exploiting intellectual property, we expect the research organisation to ensure that individuals associated with the research understand the arrangements for exploitation. Where research is funded by or undertaken in collaboration with others, the research organisation is responsible for putting appropriate formal agreements in place covering the contributions and rights of the various organisations and individuals involved. Such agreements must be in place before the research begins. Research organisations are required to ensure that the terms of collaboration agreements do not conflict with the Terms and Conditions for Research Council Grants.
The ESRC expects grant holders to meet the copyright requirements set down in the Copyright, Designs and Patents Act 1988. Responsibility for ensuring compliance with all laws and other legal instruments rests with the grant holders and/or their institutions. We will not accept liability for any complaint or legal action taken against a researcher or the ESDS for infringements of copyrights, defamation or any other data protection requirements.
"
+ number: 1
+ section: esrc_7
+ themes: ipr_ownership_and_licencing
+
+esrc_8_1:
+ text: "Responsibilities for data management and curation within research teams at all participating institutions"
+ guidance: "Indicate who within your research team will be responsible for data management, metadata production, dealing with quality issues and the final delivery of data for sharing or archiving. Provide this information within the Staff Duties section in the Je-S form and where appropriate in the Justification of Resources. If several people will be responsible state their roles and responsibilities in the relevant section of the Je-S form. For collaborative projects you should explain the co-ordination of data management responsibilities across partners in your Data Management Plan.
"
+ number: 1
+ section: esrc_8
+ themes: project_data_contact, responsibilities
+
+nerc_1_1_1:
+ text: Data management procedures to be followed during the lifetime of the grant or fellowship
+ guidance: "Consider issues like:
- metadata: will you document discovery (what, where, when, why, who) and descriptive (how collected, how processed, how stored, how linked) metadata and implement the NERC Discovery Metadata Standard (http://data-search.nerc.ac.uk/documents/metadatastandard_v1.0.pdf) early in the project?
- data storage: have you access to enough storage and backup? Will you need specialist help with database design?
- data quality: will there be an earmarked data manager within the team, what data quality checks will be used, will student data be integrated in the data plan?
- ethical and access issues: are there special data security or licensing issues and how will you address these?
"
+ number: 1
+ section: nerc_1_1
+ themes: metadata_capture, active_data_storage, data_quality, ethical_issues, managed_access_procedures
+
+nerc_1_2_1:
+ text: Existing datasets to be used by the grant or fellowship
+ guidance: "Comment on any restrictions on reuse.
"
+ number: 1
+ section: nerc_1_2
+ themes: existing_data, licensing_of_existing_data
+
+nerc_1_3_1:
+ text: Data Centre
+ guidance: "The most appropriate NERC Data Centre – projects can contribute to more than one Data Centre.
"
+ number: 1
+ section: nerc_1_3
+ themes: data_repository
+
+nerc_1_3_2:
+ text: Data Description
+ guidance: "1-2 sentences describing the data.
"
+ number: 2
+ section: nerc_1_3
+ themes: description_of_data_content
+
+nerc_1_3_3:
+ text: Release Date to Data Centre
+ guidance: "Data should normally be delivered to a data centre within 2 years of collection.
"
+ number: 3
+ section: nerc_1_3
+ themes: timeframe_for_data_sharing
+
+nerc_1_3_4:
+ text: Reuse Scenarios
+ guidance: "Possible user types and estimate of numbers if possible.
"
+ number: 4
+ section: nerc_1_3
+ themes: expected_reuse
+
+nerc_2_1_1:
+ text: Nominated Data Centre
+ number: 1
+ section: nerc_2_1
+ themes: data_repository
+
+nerc_2_1_2:
+ text: Data Centre Contact
+ number: 2
+ section: nerc_2_1
+
+nerc_2_1_3:
+ text: Please specify any other team members with responsibility for data
+ number: 3
+ section: nerc_2_1
+
+nerc_2_2_1:
+ text: Roles and Responsibilities
+ guidance: "For example: who is responsible for obtaining 3rd party data, for capturing data in the field, producing metadata, transferring metadata and data to DDC.
"
+ number: 1
+ section: nerc_2_2
+ themes: responsibilities
+
+nerc_2_3_1:
+ text: Data Generation Activities
+ guidance: "Short description of the what, how much, when and how etc.
"
+ number: 1
+ section: nerc_2_3
+ themes: data_capture_methods
+
+nerc_2_4_1:
+ text: In-Project Data Management Approach
+ guidance: "Statement about how the data will be managed within the project, including backup & security.
"
+ number: 1
+ section: nerc_2_4
+ themes: active_data_storage, backup_procedures, data_security
+
+nerc_2_5_1:
+ text: Metadata and Documentation
+ guidance: "Insert statement about how metadata will be supplied and standards to which it will adhere.
"
+ number: 1
+ section: nerc_2_5
+ themes: metadata_capture, metadata_standards
+
+nerc_2_6_1:
+ text: Data Quality
+ guidance: "List procedures for quality control of data.
"
+ number: 1
+ section: nerc_2_6
+ themes: data_quality
+
+nerc_2_7_1:
+ text: Exceptions or Additional Services
+ guidance: "Any exceptional expectations of Data Centres (for example exceptional size or complexity) - funding for which should be included within the project's Directly Incurred costs and explained within the Justification of Resources attachment.
"
+ number: 1
+ section: nerc_2_7
+ themes: resourcing_preservation_and_data_sharing
+
+nerc_2_8_1:
+ text: Digital Information
+ guidance: "Enter a brief description of the activities that will produce the data.
"
+ number: 1
+ section: nerc_2_8
+ themes: data_capture_methods, description_of_data_content, project_data_contact, data_volumes, data_format, ipr_ownership_and_licencing, timeframe_for_data_sharing, timeframe_for_data_sharing, expected_reuse, preservation_plan
+
+nerc_2_8_2:
+ text: Hardcopy Records
+ guidance: "Enter a brief description of the activities that will produce the data.
"
+ number: 2
+ section: nerc_2_8
+ themes: data_capture_methods, project_data_contact, data_volumes, data_format, ipr_ownership_and_licencing, timeframe_for_data_sharing, preservation_plan
+
+nerc_2_8_3:
+ text: Physical Collections & Samples
+ guidance: "Enter a brief description of the activities that will produce the data
"
+ number: 3
+ section: nerc_2_8
+ themes: data_capture_methods,project_data_contact,data_volumes,data_format,ipr_ownership_and_licencing,timeframe_for_data_sharing,preservation_plan
+
+nerc_2_9_1:
+ text: Third Party/Existing Datasets
+ number: 1
+ section: nerc_2_9
+ themes: existing_data, data_volumes, responsibilities, licensing_of_existing_data, restrictions_on_sharing
+
+mrc_1_1:
+ text: Type of Study
+ guidance: "Up to three lines of text that summarise the type of study (or studies) for which the data are being collected.
"
+ number: 1
+ section: mrc_1
+ themes: project_description
+
+mrc_1_2:
+ text: Types of Data
+ guidance: "Types of research data to be managed in the following terms: quantitative, qualitative; generated from surveys, clinical measurements, interviews, medical records, electronic health records, administrative records, genotypic data, images, tissue samples,...
"
+ number: 2
+ section: mrc_1
+ themes: data_type
+
+mrc_1_3:
+ text: Format and scale of the data
+ guidance: "File formats, software used, number of records, databases, sweeps, repetitions,… (in terms that are meaningful in your field of research). Do formats and software enable sharing and long-term validity of data?
"
+ number: 1
+ section: mrc_1
+ themes: data_format, data_volumes
+
+mrc_2_1:
+ text: Methodologies for data collection / generation
+ guidance: "How the data will be collected/generated and which community data standards (if any) will be used at this stage.
"
+ number: 1
+ section: mrc_2
+ themes: data_capture_methods
+
+mrc_2_2:
+ text: Data quality and standards
+ guidance: "How consistency and quality of data collection / generation will be controlled and documented, through processes of calibration, repeat samples or measurements, standardised data capture or recording, data entry validation, peer review of data or representation with controlled vocabularies.
"
+ number: 2
+ section: mrc_2
+ themes: data_quality, documentation
+
+mrc_3_1:
+ text: Managing, storing and curating data
+ guidance: "Briefly, how data will be stored, backed-up, managed and curated in the short to medium term. Specify any community agreed or other formal data standards used (with URL references). [Enter data security standards in Section 4].
"
+ number: 1
+ section: mrc_3
+ themes: active_data_storage, backup_procedures
+
+mrc_3_2:
+ text: Metadata standards and data documentation
+ guidance: "Plans for documenting, annotating and describing data so that research data are usable by others than your own team. This may include documenting the methods used to generate the data, analytical and procedural information, capturing instrument metadata alongside data, documenting provenance of data and their coding, detailed descriptions for variables, records, etc.
"
+ number: 2
+ section: mrc_3
+ themes: metadata_standards, documentation
+
+mrc_3_3:
+ text: Data preservation strategy and standards
+ guidance: "Plans and place for long-term storage, preservation and planned retention period for the research data. Formal preservation standards, if any. Indicate which data may not be retained (if any).
"
+ number: 3
+ section: mrc_3
+ themes: preservation_plan, data_repository, period_of_preservation
+
+mrc_4_1:
+ text: Formal information/data security standards
+ guidance: "Identify formal information standards with which your study is or will be compliant. An example is ISO 27001.
"
+ number: 1
+ section: mrc_4
+ themes: data_security
+
+mrc_4_2:
+ text: Main risks to data security
+ guidance: "If not using formal standards, summarise the main risks to the confidentiality and security of information related to human participants, and how these risks will be managed. Cover the main processes or facilities for storage and processing of personal data, data access, with controls put in place and any auditing of user compliance with consent and security conditions.
MRC guidance on the categories of data availability is provided.
"
+ number: 2
+ section: mrc_4
+ themes: data_security
+
+mrc_5_1:
+ text: Data sharing and access
+ guidance: "Identify any data repository (-ies) that are, or will be, entrusted with storing, curating and/or sharing data from your study, where they exist for particular disciplinary domains or data types. Information on repositories is available here.
"
+ number: 1
+ section: mrc_5
+ themes: data_repository
+
+mrc_5_2:
+ text: Suitability for sharing
+ guidance: "Indicate whether the data you propose to collect (or existing data you propose to use) in the study will be suitable for sharing. (“Yes” or “No”)
If “No,” indicate why they will not be suitable for sharing and then go to Section 6.
"
+ number: 2
+ multiple_choice: true
+ multiple_permitted: false
+ is_expanded: true
+ section: mrc_5
+
+mrc_5_3:
+ text: Discovery by potential users of the research data
+ guidance: "Indicate how potential new users can find out about your data and identify whether they could be suitable for their research purposes, e.g. through summary information (metadata) being readily available on the study website, in the MRC gateway for population and patient research data, or in other databases or catalogues. Indicate whether your policy or approach to data sharing is (or will be) published on your study website (or by other means).
"
+ number: 3
+ section: mrc_5
+ themes: discovery_by_users
+
+mrc_5_4:
+ text: Governance of access
+ guidance: "Identify who makes or will make the decision on whether to supply research data to a potential new user.
For population health and patient-based research, indicate how independent oversight of data access and sharing works (or will work) in compliance with MRC policy.
Indicate whether the research data will be deposited in and available from an identified community database, repository, archive or other infrastructure established to curate and share data.
"
+ number: 4
+ section: mrc_5
+ themes: managed_access_procedures, method_for_data_sharing
+
+mrc_5_5:
+ text: The study team’s exclusive use of the data
+ guidance: "MRC’s requirement is for timely data sharing, with the understanding that a limited, defined period of exclusive use of data for primary research is reasonable according to the nature and value of the data, and that this restriction on sharing should be based on simple, clear principles.
Summarise the principles of your current/intended policy.
"
+ number: 5
+ section: mrc_5
+ themes: timeframe_for_data_sharing
+
+mrc_5_6:
+ text: Restrictions or delays to sharing, with planned actions to limit such restrictions
+ guidance: "Restriction to data sharing may be due to participant confidentiality, consent agreements or IPR. Strategies to limit restrictions may include data being anonymised or aggregated; gaining participant consent for data sharing; gaining copyright permissions. For prospective studies, consent procedures should include provision for data sharing to maximise the value of the data for wider research use, while providing adequate safeguards for participants. As part of the consent process, proposed procedures for data sharing should be set out clearly and current and potential future risks associated with this explained to research participants.
"
+ number: 6
+ section: mrc_5
+ themes: restrictions_on_sharing
+
+mrc_5_7:
+ text: Regulation of responsibilities of users
+ guidance: "Indicate whether external users are (will be) bound by data sharing agreements, setting out their main responsibilities.
"
+ number: 7
+ section: mrc_5
+ themes: managed_access_procedures
+
+mrc_6_1:
+ text: Responsibilities
+ guidance: "Specify who, alongside the PI, is responsible for ensuring the study-wide data management, as well as for specific roles such as metadata creation, data security and quality assurance of data.
"
+ number: 1
+ section: mrc_6
+ themes: responsibilities
+
+mrc_6_2:
+ text: Relevant institutional, departmental or study policies on data sharing and data security
+ guidance: "List policy, URL & reference
Please complete, where such policies are (i) relevant to your study, and (ii) are in the public domain, e.g. accessibly through the internet. Add any others that are relevant
"
+ number: 2
+ section: mrc_6
+ themes: related_policies
+
+stfc_1_1:
+ text: Specify the types of data the research will generate.
+ guidance: "Data management plans should describe the types of data that are expected to be produced from the project, including the raw data arising directly from the research, the reduced data derived from it, and published data.
"
+ number: 1
+ section: stfc_1
+ themes: data_type
+
+stfc_2_1:
+ text: Specify which data will be preserved and how.
+ guidance: "Unless there are compelling reasons not to do so, STFC expects data to be managed through an established repository, chosen to maximise the scientific value from aggregation of related data. This may be at the grant holder's institution or elsewhere. Data management plans may refer to the general policies of the chosen repository and only include further details if necessary to the specific project. (If it is proposed not to use an established repository, the data management plan will need to demonstrate that resources and systems will be in place to enable the data to be curated effectively beyond the lifetime of the grant, although STFC recognises that applicants may not have the expertise to describe in detail how data will be curated).
"
+ number: 1
+ section: stfc_2
+ themes: data_selection, preservation_plan, data_repository
+
+stfc_3_1:
+ text: Specify the software and metadata implications.
+ guidance: "The data management plan should specify the software and metadata that will be retained to enable the data to be read and interpreted.
"
+ number: 1
+ section: stfc_3
+ themes: documentation, metadata_standards
+
+stfc_4_1:
+ text: Specify for how long the data will be preserved.
+ guidance: "This may depend on the type of data. Where possible, STFC expects the original data, from which other related data can in principle be derived, to be retained for a minimum of 10 years from the end of the project. For data that by their nature cannot be re-measured, efforts should be made to retain them indefinitely.
"
+ number: 1
+ section: stfc_4
+ themes: period_of_preservation
+
+stfc_5_1:
+ text: Specify and justify which data will have value to others and should be shared.
+ guidance: "Any data that are shared should be of a sufficiently high quality to be of value to other researchers. In general, published data – data that are displayed or otherwise referred to in a publication – should be made publicly available, but it is for applicants to consider and justify which types of data will, in the context of their project, meaningfully and practically constitute published data. Publicly available means available to anyone, but there may be a requirement for registration to enable tracking of data use and to provide notification of terms and conditions of use where they apply. Other data should be made available wherever it is appropriate and cost-effective to do so, taking into account the cost of curation compared with the cost or feasibility of re-creation, the potential long-term demand for the data and the feasibility of their reuse by others.
"
+ number: 1
+ section: stfc_5
+ themes: audience, expected_reuse, data_selection
+
+stfc_6_1:
+ text: Specify and justify the length of any proprietary period.
+ guidance: "This might for example refer to the reasonable needs of the research team to have a first opportunity to exploit the results of their research, including any intellectual property arising. Where there are accepted norms within a scientific field or specific archive they should normally be followed. In general, STFC expects that published data should be made publicly available within six months of publication unless justified otherwise.
"
+ number: 1
+ section: stfc_6
+ themes: timeframe_for_data_sharing
+
+stfc_7_1:
+ text: Specify how data will be shared
+ guidance: "The minimum level of data sharing expected would be that of making the data available in the natural format in which they were created, along with documentation and metadata, according to the standard accepted procedures within the scientific field. Where the data are likely to be in great demand by others it may be appropriate to request resources for a more proactive approach to data sharing, which maximises opportunities for cross linkage with other sectors.
"
+ number: 1
+ section: stfc_7
+ themes: method_for_data_sharing
+
+stfc_8_1:
+ text: Specify and justify any resources required to preserve and share the data.
+ guidance: "Wherever possible, data management should make use of existing skills and capabilities. However, justification should be made for any additional specialist staff (or training for existing staff) needed within the grant to enable the research team to manage, preserve and share data effectively; and for any computational facilities needed to manage, store and share the data generated by the research.
"
+ number: 1
+ section: stfc_8
+ themes: resourcing_preservation_and_data_sharing, resourcing_skills_and_training
+
+wellcome_1_1:
+ text: What data outputs will your research generate and what data will have value to other researchers?
+ guidance: "Researchers should maximise access to research datasets of value to the wider research community in a timely and responsible manner. Any data that is shared should be of a sufficiently high quality that it will have value to other researchers and should be provided in a format that enables it to be used effectively.
We recognise that in some cases it may not be appropriate for researchers to share their data. However, if your research meets the criteria for requiring a data management and sharing plan but you are intending not to share your data, the reasons for this must be clearly justified.
Data should be shared in accordance with recognised data standards where these exist, and in a way that maximises opportunities for data linkage and interoperability. Sufficient metadata must be provided to enable the dataset to be used by others. Agreed best practice standards for metadata provision should be adopted where these are in place.
When developing data management and sharing plans, researchers should therefore consider and briefly describe:
- what types of data the proposed research will generate?
- which data will have value to other research users and could be shared?
- what data formats and quality standards will be applied to enable the data to be shared effectively?
"
+ number: 1
+ section: wellcome_1
+ themes: description_of_data_content, data_selection, audience, data_format, data_quality, data_type
+
+wellcome_2_1:
+ text: When will you share the data?
+ guidance: "All data management and sharing plans must state clearly the timescales over which datasets of value will be shared. Such timescales should take account of any recognised standards of good practice in the applicant's research field.
In considering the timescales that are appropriate, the Trust recognises fully that data generators have the right to a reasonable (but not unlimited) period of exclusive use for the research data that they produce.
As set out in our guidelines on good research practice, all grant holders must ensure as an absolute minimum that the data underpinning research papers are made available to other researchers on publication, providing this is consistent with any ethics approvals and consents which cover the data and any intellectual property rights in them.
In cases where the creation of a database resource is the primary goal of a Trust-funded activity, we would normally expect the data to be made widely available to user communities at the earliest feasible opportunity.
In line with the Fort Lauderdale Principles and subsequent Toronto statement on pre-publication data sharing, the Trust also encourages timely and responsible pre-publication data sharing for research that might constitute a \"community resource\" (i.e. those that have the characteristics set out in point 7 above).
Where appropriate, researchers may use publication moratoria to facilitate pre-publication sharing of data with other researchers, while protecting their right to first publication. Any such restrictions on data use should be reasonable, transparent and in line with established best practice.
Illustrative examples of timescales for data sharing are provided to help demonstrate different models that have been adopted and may be considered as examples of good practice in the field of large-scale genetics and genomics studies.
"
+ number: 1
+ section: wellcome_2
+ themes: timeframe_for_data_sharing
+
+wellcome_3_1:
+ text: Where will you make the data available?
+ guidance: "Researchers should deposit data in recognised data repositories where these exist for particular data types, unless there is a compelling reason not to do so. Further information on repositories that may be appropriate
If the intention is to create a tailored database resource or to store data locally, researchers should ensure that they have the resources and systems in place so that the data are curated, secured and shared in an way that maximises its value and safeguards any associated risks.This includes consideration of how data held in this way can be effectively linked and integrated with other datasets to enhance its value to users.
"
+ number: 1
+ section: wellcome_3
+ themes: method_for_data_sharing, data_repository
+
+wellcome_4_1:
+ text: How will other researchers be able to access the data?
+ guidance: "Data should be made available to other researchers with as few restrictions as possible. Where a managed access process is required - for example, where a study involves potentially identifiable data about research participants - the access mechanisms established should be proportionate to the risks associated with the data, and must not unduly restrict or delay access. Any managed access procedures that are proposed must be described clearly as part of your data management and sharing plan.
Depending on the study, it may be appropriate to establish a graded access procedure in which less sensitive data (e.g. anonymised and aggregate data) are made readily available, whereas applications to access to more sensitive datasets are subject to a more stringent assessment process.
Any managed access procedures should be consistent and transparent. In cases where a Data Access Committee is required to assess applications to access data, the composition of such Committees should include individuals with appropriate expertise who are independent of the project.
Where appropriate, the Trust would encourage those generating datasets that are likely to be of significant value to other researchers to publish a 'marker paper' or other form of publication, which enables data users to formally cite their usage of the resource.
Where a database resource is being developed as part of a funded activity, researchers should take reasonable steps to ensure that potential users are made aware of its availability. These should be outlined briefly in your plan.
"
+ number: 1
+ section: wellcome_4
+ themes: managed_access_procedures, method_for_data_sharing
+
+wellcome_5_1:
+ text: Are any limits to data sharing required - for example, to either safeguard research participants or to gain appropriate intellectual property protection?
+ guidance: "For some research, delays or limits on data sharing may be necessary and appropriate to safeguard research participants or to ensure intellectual property protection is gained. Any such restrictions should, however, be minimised as far as feasible and set out clearly in data management and sharing plans where these are required.
For research involving samples or information pertaining to human subjects, data must be managed and shared in a way which is fully consistent with the terms of the consent under which samples and data were provided by the research participants.
For prospective studies, consent procedures should include provision for data sharing in a way that maximises the value of the data for wider research use, while providing adequate safeguards for participants. As part of the consent process, proposed procedures for data sharing should be set out clearly and current and potential future risks associated with this explained to research participants.
In designing studies, researchers must ensure that they have appropriate systems to protect the confidentiality and security of data pertaining to human subjects, and minimise any risks of identification by data users. This can be achieved through the use of appropriate anonymisation procedures and managed access processes. Such systems should be sufficient to safeguard participants, but proportionate to the level of sensitivity of the data and associated risk. They should not unduly inhibit responsible data sharing for legitimate research uses.
In line with our policy on intellectual property and patenting, we expect our funded researchers to ensure that any intellectual property in the outputs of their research is suitably protected and managed in a way that best enables the use of that knowledge for ultimate health benefit.
Delays or restrictions on data sharing may be appropriate to gain intellectual property protection or to further development of a technology for public benefit. As noted above, any such limits should be minimised as far as is feasible.
"
+ number: 1
+ section: wellcome_5
+ themes: restrictions_on_sharing, data_security, ethical_issues, ipr_ownership_and_licencing
+
+wellcome_6_1:
+ text: How will you ensure that key datasets are preserved to ensure their long-term value?
+ guidance: "Researchers must consider how datasets that have long-term value will be preserved and curated beyond the lifetime of the grant. If the proposal is to create a bespoke data resource or to store data locally rather than to use a recognised data repository, data management plans should state clearly how the applicant expects that the dataset will be preserved and shared when the period of grant funding comes to an end.
The Trust is happy to discuss issues relating to longer-term preservation and sustainability with researchers so as to help provide the support required to maximise the long-term value of key research datasets.
"
+ number: 1
+ section: wellcome_6
+ themes: preservation_plan, data_repository
+
+wellcome_7_1:
+ text: What resources will you require to deliver your plan?
+ guidance: "In preparing data management and sharing plans, researchers should consider carefully any resources they may need to deliver their plan.Where dedicated resources are required, these should be outlined and justified as part of the plan.
Issues to consider include:
- People and skills - is there sufficient expertise and resource in the research team to manage, preserve and share the data effectively?Is additional specialist expertise (or training for existing staff) required? If so, how will this be sourced?
- Infrastructure - are there appropriate computational facilities to manage, store and analyse the data generated by the research?
- Tools - will additional computational facilities and resources need to be accessed, and what will be the costs associated with this?
"
+ number: 1
+ section: wellcome_7
+ themes: resourcing_skills_and_training, resourcing_hardware_and_software, resourcing_preservation_and_data_sharing
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml
new file mode 100644
index 0000000000..add775b0cf
--- /dev/null
+++ b/test/fixtures/roles.yml
@@ -0,0 +1,4 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+admin_role:
+ name: "admin"
diff --git a/test/fixtures/sections.yml b/test/fixtures/sections.yml
new file mode 100644
index 0000000000..f68a3c05d4
--- /dev/null
+++ b/test/fixtures/sections.yml
@@ -0,0 +1,430 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+administrative_data:
+ title: Administrative Data
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 1
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+data_collection:
+ title: Data Collection
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 2
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+documentation_and_metadata:
+ title: Documentation and Metadata
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 3
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+ethics_and_legal_compliance:
+ title: Ethics and Legal Compliance
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 4
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+storage_and_backup:
+ title: Storage and Backup
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 5
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+selection_and_preservation:
+ title: Selection and Preservation
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 6
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+data_sharing:
+ title: Data Sharing
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 7
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+responsibilities_and_resources:
+ title: Responsibilities and Resources
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ number: 8
+ version: DCC_phase_1_version_1
+ organisation: dcc
+
+#multiple_choice:
+# title: Multiple Choice Examples
+# description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+# number: 9
+# version: DCC_phase_1_version_1
+# organisation: dcc
+
+ahrc_1:
+ title: Summary of Digital Outputs and Digital Technologies
+ number: 1
+ version: ahrc_template_1_version_1
+ organisation: ahrc
+
+ahrc_2:
+ title: Technical Methodology
+ number: 2
+ version: ahrc_template_1_version_1
+ organisation: ahrc
+
+ahrc_3:
+ title: Technical Support and Relevant Experience
+ number: 3
+ version: ahrc_template_1_version_1
+ organisation: ahrc
+
+ahrc_4:
+ title: Preservation, Sustainability and Use
+ number: 4
+ version: ahrc_template_1_version_1
+ organisation: ahrc
+
+bbsrc_1:
+ title: Data areas and data types
+ number: 1
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_2:
+ title: Standards and metadata
+ number: 2
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_3:
+ title: Relationship to other data available in public repositories
+ number: 3
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_4:
+ title: Secondary Use
+ number: 4
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_5:
+ title: Methods for data sharing
+ number: 5
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_6:
+ title: Proprietary data
+ number: 6
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_7:
+ title: Timeframes
+ number: 7
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+bbsrc_8:
+ title: Format of the final dataset
+ number: 8
+ version: bbsrc_template_1_version_1
+ organisation: bbsrc
+
+cruk_1:
+ title: Data volume, type, content and format
+ number: 1
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_2:
+ title: Data collection and management standards
+ number: 2
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_3:
+ title: Metadata, documentation and other supporting material
+ number: 3
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_4:
+ title: Sharing method
+ number: 4
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_5:
+ title: Release timescale
+ number: 5
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_6:
+ title: Preservation Plan
+ number: 6
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_7:
+ title: Data sharing agreement
+ number: 7
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+cruk_8:
+ title: Sharing restrictions
+ number: 8
+ version: cruk_template_1_version_1
+ organisation: cruk
+
+esrc_1:
+ title: Existing data
+ number: 1
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_2:
+ title: Information on the data that will be produced
+ number: 2
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_3:
+ title: Planned quality assurance and back-up procedures (security/storage)
+ number: 3
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_4:
+ title: Management and archiving of collected data
+ number: 4
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_5:
+ title: Overcoming data sharing difficulties
+ number: 5
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_6:
+ title: Consent, confidentiality, anonymisation and other ethical considerations
+ number: 6
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_7:
+ title: Copyright and intellectual property ownership of the data
+ number: 7
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+esrc_8:
+ title: Responsibilities for data management and curation
+ number: 8
+ version: esrc_template_1_version_1
+ organisation: esrc
+
+nerc_1_1:
+ title: Data management procedures to be followed during the lifetime of the grant or fellowship
+ number: 1
+ version: nerc_template_1_version_1
+ organisation: nerc
+
+nerc_1_2:
+ title: Existing datasets to be used by the grant or fellowship
+ number: 2
+ version: nerc_template_1_version_1
+ organisation: nerc
+
+nerc_1_3:
+ title: Datasets likely to be created by the grant or fellowship which will be made available to a NERC Environmental Data Centre at the end of the Grant
+ number: 3
+ version: nerc_template_1_version_1
+ organisation: nerc
+
+nerc_2_1:
+ title: Organisation
+ number: 1
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_2:
+ title: Roles and Responsibilities
+ number: 2
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_3:
+ title: Data Generation Activities
+ number: 3
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_4:
+ title: In-Project Data Management Approach
+ number: 4
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_5:
+ title: Metadata and Documentation
+ number: 5
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_6:
+ title: Data Quality
+ number: 6
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_7:
+ title: Exceptions or Additional Services
+ number: 7
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_8:
+ title: New Datasets
+ number: 8
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+nerc_2_9:
+ title: Third Party/Existing Datasets
+ number: 9
+ version: nerc_template_2_version_1
+ organisation: nerc
+
+mrc_1:
+ title: Description of Data
+ number: 1
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+mrc_2:
+ title: Data collection / generation
+ number: 2
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+mrc_3:
+ title: Data management, documentation and curation
+ number: 3
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+mrc_4:
+ title: Data security and confidentiality of potentially disclosive personal information
+ number: 4
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+mrc_5:
+ title: Data sharing and access
+ number: 5
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+mrc_6:
+ title: Policies and Responsibilities
+ number: 6
+ version: mrc_template_1_version_1
+ organisation: mrc
+
+stfc_1:
+ title: Data types
+ number: 1
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_2:
+ title: Which data will be preserved and how
+ number: 2
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_3:
+ title: Software and metadata implications
+ number: 3
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_4:
+ title: Preservation period
+ number: 4
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_5:
+ title: Which data will have value to others and should be shared
+ number: 5
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_6:
+ title: Proprietary period
+ number: 6
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_7:
+ title: How data will be shared
+ number: 7
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+stfc_8:
+ title: Resources required to preserve and share data
+ number: 8
+ version: stfc_template_1_version_1
+ organisation: stfc
+
+wellcome_1:
+ title: Data outputs
+ number: 1
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_2:
+ title: Data sharing timeframe
+ number: 2
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_3:
+ title: Data sharing method
+ number: 3
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_4:
+ title: Access for other researchers
+ number: 4
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_5:
+ title: Data sharing limits
+ number: 5
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_6:
+ title: Data preservation
+ number: 6
+ version: wellcome_template_1_version_1
+ organisation: wellcome
+
+wellcome_7:
+ title: Required resources
+ number: 7
+ version: wellcome_template_1_version_1
+ organisation: wellcome
\ No newline at end of file
diff --git a/test/fixtures/themes.yml b/test/fixtures/themes.yml
new file mode 100644
index 0000000000..8bc2df65df
--- /dev/null
+++ b/test/fixtures/themes.yml
@@ -0,0 +1,176 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+related_policies:
+ title: Related Policies
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+existing_data:
+ title: Existing Data
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+licensing_of_existing_data:
+ title: Licensing of Existing Data
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+relationship_to_existing_data:
+ title: Relationship to Existing Data
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+description_of_data_content:
+ title: Description of Data Content
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_format:
+ title: Data Format
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_volumes:
+ title: Data Volumes
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_type:
+ title: Data Type
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_capture_methods:
+ title: Data Capture Methods
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_organisation:
+ title: Data Organisation
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_quality:
+ title: Data Quality
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+documentation:
+ title: Documentation
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+metadata_capture:
+ title: Metadata Capture
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+metadata_standards:
+ title: Metadata Standards
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+discovery_by_users:
+ title: Discovery by Users
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+ethical_issues:
+ title: Ethical Issues
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+ipr_ownership_and_licencing:
+ title: IPR Ownership and Licencing
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+active_data_storage:
+ title: Active Data Storage
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+backup_procedures:
+ title: Backup Procedures
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_security:
+ title: Data Security
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_selection:
+ title: Data Selection
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+preservation_plan:
+ title: Preservation Plan
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+period_of_preservation:
+ title: Period of Preservation
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+data_repository:
+ title: Data Repository
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+audience:
+ title: Audience
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+expected_reuse:
+ title: Expected Reuse
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+method_for_data_sharing:
+ title: Method For Data Sharing
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+timeframe_for_data_sharing:
+ title: Timeframe For Data Sharing
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+embargo_period:
+ title: Embargo Period
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+restrictions_on_sharing:
+ title: Restrictions on Sharing
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+managed_access_procedures:
+ title: Managed Access Procedures
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+responsibilities:
+ title: Responsibilities
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+resourcing_skills_and_training:
+ title: "Resourcing: Skills and Training"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+resourcing_hardware_and_software:
+ title: "Resourcing: Hardware and Software"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
+
+resourcing_preservation_and_data_sharing:
+ title: "Resourcing: Preservation and Data Sharing"
+ description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+ locale: en
diff --git a/test/fixtures/user_org_roles.yml b/test/fixtures/user_org_roles.yml
new file mode 100644
index 0000000000..a1e1b91369
--- /dev/null
+++ b/test/fixtures/user_org_roles.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# user_id: 1
+# organisation_id: 1
+# user_role_type_id: 1
+#
+#two:
+# user_id: 1
+# organisation_id: 1
+# user_role_type_id: 1
diff --git a/test/fixtures/user_role_types.yml b/test/fixtures/user_role_types.yml
new file mode 100644
index 0000000000..b9c7d3bdf9
--- /dev/null
+++ b/test/fixtures/user_role_types.yml
@@ -0,0 +1,10 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+enduser:
+ name: user
+
+
+#
+#two:
+# name: MyString
+# description: MyText
diff --git a/test/fixtures/user_statuses.yml b/test/fixtures/user_statuses.yml
new file mode 100644
index 0000000000..885632cb3c
--- /dev/null
+++ b/test/fixtures/user_statuses.yml
@@ -0,0 +1,9 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# name: MyString
+# description: MyText
+#
+#two:
+# name: MyString
+# description: MyText
diff --git a/test/fixtures/user_types.yml b/test/fixtures/user_types.yml
new file mode 100644
index 0000000000..885632cb3c
--- /dev/null
+++ b/test/fixtures/user_types.yml
@@ -0,0 +1,9 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# name: MyString
+# description: MyText
+#
+#two:
+# name: MyString
+# description: MyText
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml
new file mode 100644
index 0000000000..c0481cea74
--- /dev/null
+++ b/test/fixtures/users.yml
@@ -0,0 +1,31 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+#one:
+# firstname: MyString
+# surname: MyString
+# email: MyString
+# password: MyString
+# orcid_id: MyString
+# shibboleth_id: MyString
+# user_type_id: 1
+# user_status_id: 1
+# login_count: 1
+# last_login: 2013-06-11 13:58:06
+#
+#two:
+# firstname: MyString
+# surname: MyString
+# email: MyString
+# password: MyString
+# orcid_id: MyString
+# shibboleth_id: MyString
+# user_type_id: 1
+# user_status_id: 1
+# login_count: 1
+# last_login: 2013-06-11 13:58:06
+
+with_many_projects:
+ firstname: Many
+ surname: Projects
+ email: many.projects@example.com
+ password: password
\ No newline at end of file
diff --git a/test/fixtures/versions.yml b/test/fixtures/versions.yml
new file mode 100644
index 0000000000..cd91ab2d6d
--- /dev/null
+++ b/test/fixtures/versions.yml
@@ -0,0 +1,61 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+DCC_phase_1_version_1:
+ title: DCC Phase 1 Version 1
+ published: 1
+ number: 1
+ phase: DCC_phase_1
+
+ahrc_template_1_version_1:
+ title: "AHRC Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: ahrc_template_1
+
+bbsrc_template_1_version_1:
+ title: "BBSRC Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: bbsrc_template_1
+
+cruk_template_1_version_1:
+ title: "CRUK Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: cruk_template_1
+
+esrc_template_1_version_1:
+ title: "ESRC Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: esrc_template_1
+
+nerc_template_1_version_1:
+ title: "Outline for application (Version 1)"
+ published: 1
+ number: 1
+ phase: nerc_template_1
+
+nerc_template_2_version_1:
+ title: "Detail following award (Version 1)"
+ published: 1
+ number: 1
+ phase: nerc_template_2
+
+mrc_template_1_version_1:
+ title: "MRC Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: mrc_template_1
+
+stfc_template_1_version_1:
+ title: "STFC Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: stfc_template_1
+
+wellcome_template_1_version_1:
+ title: "Wellcome Trust Data Management Questions (Version 1)"
+ published: 1
+ number: 1
+ phase: wellcome_template_1
\ No newline at end of file
diff --git a/test/functional/.gitkeep b/test/functional/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/test/functional/answers_controller_test.rb b/test/functional/answers_controller_test.rb
new file mode 100644
index 0000000000..6ae179e162
--- /dev/null
+++ b/test/functional/answers_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class AnswersControllerTest < ActionController::TestCase
+ setup do
+ @answer = answers(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:answers)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create answer" do
+ assert_difference('Answer.count') do
+ post :create, answer: { text: @answer.text, plan_id: @answer.plan_id, question_id: @answer.question_id, user_id: @answer.user_id }
+ end
+
+ assert_redirected_to answer_path(assigns(:answer))
+ end
+
+ test "should show answer" do
+ get :show, id: @answer
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @answer
+ assert_response :success
+ end
+
+ test "should update answer" do
+ put :update, id: @answer, answer: { text: @answer.text, plan_id: @answer.plan_id, question_id: @answer.question_id, user_id: @answer.user_id }
+ assert_redirected_to answer_path(assigns(:answer))
+ end
+
+ test "should destroy answer" do
+ assert_difference('Answer.count', -1) do
+ delete :destroy, id: @answer
+ end
+
+ assert_redirected_to answers_path
+ end
+end
diff --git a/test/functional/dmptemplates_controller_test.rb b/test/functional/dmptemplates_controller_test.rb
new file mode 100644
index 0000000000..3345ac871b
--- /dev/null
+++ b/test/functional/dmptemplates_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class DmptemplatesControllerTest < ActionController::TestCase
+ setup do
+ @dmptemplate = dmptemplates(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:dmptemplates)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create dmptemplate" do
+ assert_difference('Dmptemplate.count') do
+ post :create, dmptemplate: { organisation_id: @dmptemplate.organisation_id, description: @dmptemplate.description, published: @dmptemplate.published, title: @dmptemplate.title, user_id: @dmptemplate.user_id }
+ end
+
+ assert_redirected_to dmptemplate_path(assigns(:dmptemplate))
+ end
+
+ test "should show dmptemplate" do
+ get :show, id: @dmptemplate
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @dmptemplate
+ assert_response :success
+ end
+
+ test "should update dmptemplate" do
+ put :update, id: @dmptemplate, dmptemplate: { organisation_id: @dmptemplate.organisation_id, description: @dmptemplate.description, published: @dmptemplate.published, title: @dmptemplate.title, user_id: @dmptemplate.user_id }
+ assert_redirected_to dmptemplate_path(assigns(:dmptemplate))
+ end
+
+ test "should destroy dmptemplate" do
+ assert_difference('Dmptemplate.count', -1) do
+ delete :destroy, id: @dmptemplate
+ end
+
+ assert_redirected_to dmptemplates_path
+ end
+end
diff --git a/test/functional/file_types_controller_test.rb b/test/functional/file_types_controller_test.rb
new file mode 100644
index 0000000000..17c25b3380
--- /dev/null
+++ b/test/functional/file_types_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class FileTypesControllerTest < ActionController::TestCase
+ setup do
+ @file_type = file_types(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:file_types)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create file_type" do
+ assert_difference('FileType.count') do
+ post :create, file_type: { name: @file_type.name, icon_location: @file_type.icon_location, icon_name: @file_type.icon_name, icon_size: @file_type.icon_size }
+ end
+
+ assert_redirected_to file_type_path(assigns(:file_type))
+ end
+
+ test "should show file_type" do
+ get :show, id: @file_type
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @file_type
+ assert_response :success
+ end
+
+ test "should update file_type" do
+ put :update, id: @file_type, file_type: { name: @file_type.name, icon_location: @file_type.icon_location, icon_name: @file_type.icon_name, icon_size: @file_type.icon_size }
+ assert_redirected_to file_type_path(assigns(:file_type))
+ end
+
+ test "should destroy file_type" do
+ assert_difference('FileType.count', -1) do
+ delete :destroy, id: @file_type
+ end
+
+ assert_redirected_to file_types_path
+ end
+end
diff --git a/test/functional/file_uploads_controller_test.rb b/test/functional/file_uploads_controller_test.rb
new file mode 100644
index 0000000000..29d2488762
--- /dev/null
+++ b/test/functional/file_uploads_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class FileUploadsControllerTest < ActionController::TestCase
+ setup do
+ @file_upload = file_uploads(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:file_uploads)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create file_upload" do
+ assert_difference('FileUpload.count') do
+ post :create, file_upload: { file_type_id: @file_upload.file_type_id, description: @file_upload.description, location: @file_upload.location, name: @file_upload.name, published: @file_upload.published, size: @file_upload.size, title: @file_upload.title }
+ end
+
+ assert_redirected_to file_upload_path(assigns(:file_upload))
+ end
+
+ test "should show file_upload" do
+ get :show, id: @file_upload
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @file_upload
+ assert_response :success
+ end
+
+ test "should update file_upload" do
+ put :update, id: @file_upload, file_upload: { file_type_id: @file_upload.file_type_id, description: @file_upload.description, location: @file_upload.location, name: @file_upload.name, published: @file_upload.published, size: @file_upload.size, title: @file_upload.title }
+ assert_redirected_to file_upload_path(assigns(:file_upload))
+ end
+
+ test "should destroy file_upload" do
+ assert_difference('FileUpload.count', -1) do
+ delete :destroy, id: @file_upload
+ end
+
+ assert_redirected_to file_uploads_path
+ end
+end
diff --git a/test/functional/guidances_controller_test.rb b/test/functional/guidances_controller_test.rb
new file mode 100644
index 0000000000..f019385994
--- /dev/null
+++ b/test/functional/guidances_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class GuidancesControllerTest < ActionController::TestCase
+ setup do
+ @guidance = guidances(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:guidances)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create guidance" do
+ assert_difference('Guidance.count') do
+ post :create, guidance: { file_id: @guidance.file_id, text: @guidance.text, organisation_id: @guidance.organisation_id, theme_id: @guidance.theme_id }
+ end
+
+ assert_redirected_to guidance_path(assigns(:guidance))
+ end
+
+ test "should show guidance" do
+ get :show, id: @guidance
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @guidance
+ assert_response :success
+ end
+
+ test "should update guidance" do
+ put :update, id: @guidance, guidance: { file_id: @guidance.file_id, text: @guidance.text, organisation_id: @guidance.organisation_id, theme_id: @guidance.theme_id }
+ assert_redirected_to guidance_path(assigns(:guidance))
+ end
+
+ test "should destroy guidance" do
+ assert_difference('Guidance.count', -1) do
+ delete :destroy, id: @guidance
+ end
+
+ assert_redirected_to guidances_path
+ end
+end
diff --git a/test/functional/home_controller_test.rb b/test/functional/home_controller_test.rb
new file mode 100644
index 0000000000..0d9bb47c3e
--- /dev/null
+++ b/test/functional/home_controller_test.rb
@@ -0,0 +1,9 @@
+require 'test_helper'
+
+class HomeControllerTest < ActionController::TestCase
+ test "should get index" do
+ get :index
+ assert_response :success
+ end
+
+end
diff --git a/test/functional/organisation_types_controller_test.rb b/test/functional/organisation_types_controller_test.rb
new file mode 100644
index 0000000000..20c30bda53
--- /dev/null
+++ b/test/functional/organisation_types_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class OrganisationTypesControllerTest < ActionController::TestCase
+ setup do
+ @organisation_type = organisation_types(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:organisation_types)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create organisation_type" do
+ assert_difference('OrganisationType.count') do
+ post :create, organisation_type: { description: @organisation_type.description, name: @organisation_type.name }
+ end
+
+ assert_redirected_to organisation_type_path(assigns(:organisation_type))
+ end
+
+ test "should show organisation_type" do
+ get :show, id: @organisation_type
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @organisation_type
+ assert_response :success
+ end
+
+ test "should update organisation_type" do
+ put :update, id: @organisation_type, organisation_type: { description: @organisation_type.description, name: @organisation_type.name }
+ assert_redirected_to organisation_type_path(assigns(:organisation_type))
+ end
+
+ test "should destroy organisation_type" do
+ assert_difference('OrganisationType.count', -1) do
+ delete :destroy, id: @organisation_type
+ end
+
+ assert_redirected_to organisation_types_path
+ end
+end
diff --git a/test/functional/organisations_controller_test.rb b/test/functional/organisations_controller_test.rb
new file mode 100644
index 0000000000..b5a3b5e2c9
--- /dev/null
+++ b/test/functional/organisations_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class OrganisationsControllerTest < ActionController::TestCase
+ setup do
+ @organisation = organisations(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:organisations)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create organisation" do
+ assert_difference('Organisation.count') do
+ post :create, organisation: { abbreviation: @organisation.abbreviation, banner_file_id: @organisation.banner_file_id, description: @organisation.description, domain: @organisation.domain, logo_file_id: @organisation.logo_file_id, name: @organisation.name, stylesheet_file_id: @organisation.stylesheet_file_id, target_url: @organisation.target_url, type_id: @organisation.type_id, wayfless_entite: @organisation.wayfless_entite }
+ end
+
+ assert_redirected_to organisation_path(assigns(:organisation))
+ end
+
+ test "should show organisation" do
+ get :show, id: @organisation
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @organisation
+ assert_response :success
+ end
+
+ test "should update organisation" do
+ put :update, id: @organisation, organisation: { abbreviation: @organisation.abbreviation, banner_file_id: @organisation.banner_file_id, description: @organisation.description, domain: @organisation.domain, logo_file_id: @organisation.logo_file_id, name: @organisation.name, stylesheet_file_id: @organisation.stylesheet_file_id, target_url: @organisation.target_url, type_id: @organisation.type_id, wayfless_entite: @organisation.wayfless_entite }
+ assert_redirected_to organisation_path(assigns(:organisation))
+ end
+
+ test "should destroy organisation" do
+ assert_difference('Organisation.count', -1) do
+ delete :destroy, id: @organisation
+ end
+
+ assert_redirected_to organisations_path
+ end
+end
diff --git a/test/functional/pages_controller_test.rb b/test/functional/pages_controller_test.rb
new file mode 100644
index 0000000000..acd2849789
--- /dev/null
+++ b/test/functional/pages_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class PagesControllerTest < ActionController::TestCase
+ setup do
+ @page = pages(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:pages)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create page" do
+ assert_difference('Page.count') do
+ post :create, page: { organisation_id: @page.organisation_id, body_text: @page.body_text, location: @page.location, menu: @page.menu, menu_position: @page.menu_position, public: @page.public, slug: @page.slug, target_url: @page.target_url, title: @page.title }
+ end
+
+ assert_redirected_to page_path(assigns(:page))
+ end
+
+ test "should show page" do
+ get :show, id: @page
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @page
+ assert_response :success
+ end
+
+ test "should update page" do
+ put :update, id: @page, page: { organisation_id: @page.organisation_id, body_text: @page.body_text, location: @page.location, menu: @page.menu, menu_position: @page.menu_position, public: @page.public, slug: @page.slug, target_url: @page.target_url, title: @page.title }
+ assert_redirected_to page_path(assigns(:page))
+ end
+
+ test "should destroy page" do
+ assert_difference('Page.count', -1) do
+ delete :destroy, id: @page
+ end
+
+ assert_redirected_to pages_path
+ end
+end
diff --git a/test/functional/phases_controller_test.rb b/test/functional/phases_controller_test.rb
new file mode 100644
index 0000000000..94608d101f
--- /dev/null
+++ b/test/functional/phases_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class PhasesControllerTest < ActionController::TestCase
+ setup do
+ @phase = phases(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:phases)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create phase" do
+ assert_difference('Phase.count') do
+ post :create, phase: { description: @phase.description, order: @phase.order, title: @phase.title }
+ end
+
+ assert_redirected_to phase_path(assigns(:phase))
+ end
+
+ test "should show phase" do
+ get :show, id: @phase
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @phase
+ assert_response :success
+ end
+
+ test "should update phase" do
+ put :update, id: @phase, phase: { description: @phase.description, order: @phase.order, title: @phase.title }
+ assert_redirected_to phase_path(assigns(:phase))
+ end
+
+ test "should destroy phase" do
+ assert_difference('Phase.count', -1) do
+ delete :destroy, id: @phase
+ end
+
+ assert_redirected_to phases_path
+ end
+end
diff --git a/test/functional/plan_sections_controller_test.rb b/test/functional/plan_sections_controller_test.rb
new file mode 100644
index 0000000000..f14bfc3042
--- /dev/null
+++ b/test/functional/plan_sections_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class PlanSectionsControllerTest < ActionController::TestCase
+ setup do
+ @plan_section = plan_sections(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:plan_sections)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create plan_section" do
+ assert_difference('PlanSection.count') do
+ post :create, plan_section: { plan_id: @plan_section.plan_id, at: @plan_section.at, edit: @plan_section.edit, section_id: @plan_section.section_id, user_editing_id: @plan_section.user_editing_id }
+ end
+
+ assert_redirected_to plan_section_path(assigns(:plan_section))
+ end
+
+ test "should show plan_section" do
+ get :show, id: @plan_section
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @plan_section
+ assert_response :success
+ end
+
+ test "should update plan_section" do
+ put :update, id: @plan_section, plan_section: { plan_id: @plan_section.plan_id, at: @plan_section.at, edit: @plan_section.edit, section_id: @plan_section.section_id, user_editing_id: @plan_section.user_editing_id }
+ assert_redirected_to plan_section_path(assigns(:plan_section))
+ end
+
+ test "should destroy plan_section" do
+ assert_difference('PlanSection.count', -1) do
+ delete :destroy, id: @plan_section
+ end
+
+ assert_redirected_to plan_sections_path
+ end
+end
diff --git a/test/functional/plans_controller_test.rb b/test/functional/plans_controller_test.rb
new file mode 100644
index 0000000000..88a66e9548
--- /dev/null
+++ b/test/functional/plans_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class PlansControllerTest < ActionController::TestCase
+ setup do
+ @plan = plans(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:plans)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create plan" do
+ assert_difference('Plan.count') do
+ post :create, plan: { locked: @plan.locked, project_id: @plan.project_id, version_id: @plan.version_id }
+ end
+
+ assert_redirected_to plan_path(assigns(:plan))
+ end
+
+ test "should show plan" do
+ get :show, id: @plan
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @plan
+ assert_response :success
+ end
+
+ test "should update plan" do
+ put :update, id: @plan, plan: { locked: @plan.locked, project_id: @plan.project_id, version_id: @plan.version_id }
+ assert_redirected_to plan_path(assigns(:plan))
+ end
+
+ test "should destroy plan" do
+ assert_difference('Plan.count', -1) do
+ delete :destroy, id: @plan
+ end
+
+ assert_redirected_to plans_path
+ end
+end
diff --git a/test/functional/project_groups_controller_test.rb b/test/functional/project_groups_controller_test.rb
new file mode 100644
index 0000000000..6325567aad
--- /dev/null
+++ b/test/functional/project_groups_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class ProjectGroupsControllerTest < ActionController::TestCase
+ setup do
+ @project_group = project_groups(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:project_groups)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create project_group" do
+ assert_difference('ProjectGroup.count') do
+ post :create, project_group: { project_creator: @project_group.project_creator, project_editor: @project_group.project_editor, project_id: @project_group.project_id, user_id: @project_group.user_id }
+ end
+
+ assert_redirected_to project_group_path(assigns(:project_group))
+ end
+
+ test "should show project_group" do
+ get :show, id: @project_group
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @project_group
+ assert_response :success
+ end
+
+ test "should update project_group" do
+ put :update, id: @project_group, project_group: { project_creator: @project_group.project_creator, project_editor: @project_group.project_editor, project_id: @project_group.project_id, user_id: @project_group.user_id }
+ assert_redirected_to project_group_path(assigns(:project_group))
+ end
+
+ test "should destroy project_group" do
+ assert_difference('ProjectGroup.count', -1) do
+ delete :destroy, id: @project_group
+ end
+
+ assert_redirected_to project_groups_path
+ end
+end
diff --git a/test/functional/project_partners_controller_test.rb b/test/functional/project_partners_controller_test.rb
new file mode 100644
index 0000000000..1613a260de
--- /dev/null
+++ b/test/functional/project_partners_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class ProjectPartnersControllerTest < ActionController::TestCase
+ setup do
+ @project_partner = project_partners(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:project_partners)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create project_partner" do
+ assert_difference('ProjectPartner.count') do
+ post :create, project_partner: { leader_org: @project_partner.leader_org, organisation_id: @project_partner.organisation_id, project_id: @project_partner.project_id }
+ end
+
+ assert_redirected_to project_partner_path(assigns(:project_partner))
+ end
+
+ test "should show project_partner" do
+ get :show, id: @project_partner
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @project_partner
+ assert_response :success
+ end
+
+ test "should update project_partner" do
+ put :update, id: @project_partner, project_partner: { leader_org: @project_partner.leader_org, organisation_id: @project_partner.organisation_id, project_id: @project_partner.project_id }
+ assert_redirected_to project_partner_path(assigns(:project_partner))
+ end
+
+ test "should destroy project_partner" do
+ assert_difference('ProjectPartner.count', -1) do
+ delete :destroy, id: @project_partner
+ end
+
+ assert_redirected_to project_partners_path
+ end
+end
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
new file mode 100644
index 0000000000..94f3ede79f
--- /dev/null
+++ b/test/functional/projects_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class ProjectsControllerTest < ActionController::TestCase
+ setup do
+ @project = projects(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:projects)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create project" do
+ assert_difference('Project.count') do
+ post :create, project: { dmptemplate_id: @project.dmptemplate_id, locked: @project.locked, note: @project.note, title: @project.title }
+ end
+
+ assert_redirected_to project_path(assigns(:project))
+ end
+
+ test "should show project" do
+ get :show, id: @project
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @project
+ assert_response :success
+ end
+
+ test "should update project" do
+ put :update, id: @project, project: { dmptemplate_id: @project.dmptemplate_id, locked: @project.locked, note: @project.note, title: @project.title }
+ assert_redirected_to project_path(assigns(:project))
+ end
+
+ test "should destroy project" do
+ assert_difference('Project.count', -1) do
+ delete :destroy, id: @project
+ end
+
+ assert_redirected_to projects_path
+ end
+end
diff --git a/test/functional/question_themes_controller_test.rb b/test/functional/question_themes_controller_test.rb
new file mode 100644
index 0000000000..7fd76f072d
--- /dev/null
+++ b/test/functional/question_themes_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class QuestionThemesControllerTest < ActionController::TestCase
+ setup do
+ @question_theme = question_themes(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:question_themes)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create question_theme" do
+ assert_difference('QuestionTheme.count') do
+ post :create, question_theme: { question_id: @question_theme.question_id, theme_id: @question_theme.theme_id }
+ end
+
+ assert_redirected_to question_theme_path(assigns(:question_theme))
+ end
+
+ test "should show question_theme" do
+ get :show, id: @question_theme
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @question_theme
+ assert_response :success
+ end
+
+ test "should update question_theme" do
+ put :update, id: @question_theme, question_theme: { question_id: @question_theme.question_id, theme_id: @question_theme.theme_id }
+ assert_redirected_to question_theme_path(assigns(:question_theme))
+ end
+
+ test "should destroy question_theme" do
+ assert_difference('QuestionTheme.count', -1) do
+ delete :destroy, id: @question_theme
+ end
+
+ assert_redirected_to question_themes_path
+ end
+end
diff --git a/test/functional/questions_controller_test.rb b/test/functional/questions_controller_test.rb
new file mode 100644
index 0000000000..8bb3d4bf62
--- /dev/null
+++ b/test/functional/questions_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class QuestionsControllerTest < ActionController::TestCase
+ setup do
+ @question = questions(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:questions)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create question" do
+ assert_difference('Question.count') do
+ post :create, question: { default_value: @question.default_value, dependency_id: @question.dependency_id, dependency_text: @question.dependency_text, guidance: @question.guidance, order: @question.order, parent_id: @question.parent_id, suggested_answer: @question.suggested_answer, text: @question.text, type: @question.type, section_id: @question.section_id }
+ end
+
+ assert_redirected_to question_path(assigns(:question))
+ end
+
+ test "should show question" do
+ get :show, id: @question
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @question
+ assert_response :success
+ end
+
+ test "should update question" do
+ put :update, id: @question, question: { default_value: @question.default_value, dependency_id: @question.dependency_id, dependency_text: @question.dependency_text, guidance: @question.guidance, order: @question.order, parent_id: @question.parent_id, suggested_answer: @question.suggested_answer, text: @question.text, type: @question.type, section_id: @question.section_id }
+ assert_redirected_to question_path(assigns(:question))
+ end
+
+ test "should destroy question" do
+ assert_difference('Question.count', -1) do
+ delete :destroy, id: @question
+ end
+
+ assert_redirected_to questions_path
+ end
+end
diff --git a/test/functional/sections_controller_test.rb b/test/functional/sections_controller_test.rb
new file mode 100644
index 0000000000..41cf765902
--- /dev/null
+++ b/test/functional/sections_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class SectionsControllerTest < ActionController::TestCase
+ setup do
+ @section = sections(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:sections)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create section" do
+ assert_difference('Section.count') do
+ post :create, section: { organisation_id: @section.organisation_id, description: @section.description, order: @section.order, title: @section.title, version_id: @section.version_id }
+ end
+
+ assert_redirected_to section_path(assigns(:section))
+ end
+
+ test "should show section" do
+ get :show, id: @section
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @section
+ assert_response :success
+ end
+
+ test "should update section" do
+ put :update, id: @section, section: { organisation_id: @section.organisation_id, description: @section.description, order: @section.order, title: @section.title, version_id: @section.version_id }
+ assert_redirected_to section_path(assigns(:section))
+ end
+
+ test "should destroy section" do
+ assert_difference('Section.count', -1) do
+ delete :destroy, id: @section
+ end
+
+ assert_redirected_to sections_path
+ end
+end
diff --git a/test/functional/themes_controller_test.rb b/test/functional/themes_controller_test.rb
new file mode 100644
index 0000000000..cae9656840
--- /dev/null
+++ b/test/functional/themes_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class ThemesControllerTest < ActionController::TestCase
+ setup do
+ @theme = themes(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:themes)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create theme" do
+ assert_difference('Theme.count') do
+ post :create, theme: { description: @theme.description, title: @theme.title }
+ end
+
+ assert_redirected_to theme_path(assigns(:theme))
+ end
+
+ test "should show theme" do
+ get :show, id: @theme
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @theme
+ assert_response :success
+ end
+
+ test "should update theme" do
+ put :update, id: @theme, theme: { description: @theme.description, title: @theme.title }
+ assert_redirected_to theme_path(assigns(:theme))
+ end
+
+ test "should destroy theme" do
+ assert_difference('Theme.count', -1) do
+ delete :destroy, id: @theme
+ end
+
+ assert_redirected_to themes_path
+ end
+end
diff --git a/test/functional/user_org_roles_controller_test.rb b/test/functional/user_org_roles_controller_test.rb
new file mode 100644
index 0000000000..feef08fd81
--- /dev/null
+++ b/test/functional/user_org_roles_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class UserOrgRolesControllerTest < ActionController::TestCase
+ setup do
+ @user_role = user_org_roles(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:user_org_roles)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create user_org_role" do
+ assert_difference('UserOrgRole.count') do
+ post :create, user_org_role: { organisation_id: @user_org_role.organisation_id, user_id: @user_org_role.user_id, user_role_type_id: @user_org_role.user_role_type_id }
+ end
+
+ assert_redirected_to user_org_role_path(assigns(:user_org_role))
+ end
+
+ test "should show user_org_role" do
+ get :show, id: @user_org_role
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @user_org_role
+ assert_response :success
+ end
+
+ test "should update user_org_role" do
+ put :update, id: @user_org_role, user_org_role: { organisation_id: @user_org_role.organisation_id, user_id: @user_org_role.user_id, user_role_type_id: @user_org_role.user_role_type_id }
+ assert_redirected_to user_org_role_path(assigns(:user_org_role))
+ end
+
+ test "should destroy user_org_role" do
+ assert_difference('UserOrgRole.count', -1) do
+ delete :destroy, id: @user_org_role
+ end
+
+ assert_redirected_to user_org_roles_path
+ end
+end
diff --git a/test/functional/user_role_types_controller_test.rb b/test/functional/user_role_types_controller_test.rb
new file mode 100644
index 0000000000..bdf3ee847e
--- /dev/null
+++ b/test/functional/user_role_types_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class UserRoleTypesControllerTest < ActionController::TestCase
+ setup do
+ @user_role_type = user_role_types(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:user_role_types)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create user_role_type" do
+ assert_difference('UserRoleType.count') do
+ post :create, user_role_type: { description: @user_role_type.description, name: @user_role_type.name }
+ end
+
+ assert_redirected_to user_role_type_path(assigns(:user_role_type))
+ end
+
+ test "should show user_role_type" do
+ get :show, id: @user_role_type
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @user_role_type
+ assert_response :success
+ end
+
+ test "should update user_role_type" do
+ put :update, id: @user_role_type, user_role_type: { description: @user_role_type.description, name: @user_role_type.name }
+ assert_redirected_to user_role_type_path(assigns(:user_role_type))
+ end
+
+ test "should destroy user_role_type" do
+ assert_difference('UserRoleType.count', -1) do
+ delete :destroy, id: @user_role_type
+ end
+
+ assert_redirected_to user_role_types_path
+ end
+end
diff --git a/test/functional/user_statuses_controller_test.rb b/test/functional/user_statuses_controller_test.rb
new file mode 100644
index 0000000000..7400cd7aab
--- /dev/null
+++ b/test/functional/user_statuses_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class UserStatusesControllerTest < ActionController::TestCase
+ setup do
+ @user_status = user_statuses(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:user_statuses)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create user_status" do
+ assert_difference('UserStatus.count') do
+ post :create, user_status: { description: @user_status.description, name: @user_status.name }
+ end
+
+ assert_redirected_to user_status_path(assigns(:user_status))
+ end
+
+ test "should show user_status" do
+ get :show, id: @user_status
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @user_status
+ assert_response :success
+ end
+
+ test "should update user_status" do
+ put :update, id: @user_status, user_status: { description: @user_status.description, name: @user_status.name }
+ assert_redirected_to user_status_path(assigns(:user_status))
+ end
+
+ test "should destroy user_status" do
+ assert_difference('UserStatus.count', -1) do
+ delete :destroy, id: @user_status
+ end
+
+ assert_redirected_to user_statuses_path
+ end
+end
diff --git a/test/functional/user_types_controller_test.rb b/test/functional/user_types_controller_test.rb
new file mode 100644
index 0000000000..ab11ffa4b1
--- /dev/null
+++ b/test/functional/user_types_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class UserTypesControllerTest < ActionController::TestCase
+ setup do
+ @user_type = user_types(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:user_types)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create user_type" do
+ assert_difference('UserType.count') do
+ post :create, user_type: { description: @user_type.description, name: @user_type.name }
+ end
+
+ assert_redirected_to user_type_path(assigns(:user_type))
+ end
+
+ test "should show user_type" do
+ get :show, id: @user_type
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @user_type
+ assert_response :success
+ end
+
+ test "should update user_type" do
+ put :update, id: @user_type, user_type: { description: @user_type.description, name: @user_type.name }
+ assert_redirected_to user_type_path(assigns(:user_type))
+ end
+
+ test "should destroy user_type" do
+ assert_difference('UserType.count', -1) do
+ delete :destroy, id: @user_type
+ end
+
+ assert_redirected_to user_types_path
+ end
+end
diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb
new file mode 100644
index 0000000000..a775f59271
--- /dev/null
+++ b/test/functional/users_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class UsersControllerTest < ActionController::TestCase
+ setup do
+ @user = users(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:users)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create user" do
+ assert_difference('User.count') do
+ post :create, user: { email: @user.email, firstname: @user.firstname, last_login: @user.last_login, login_count: @user.login_count, orcid_id: @user.orcid_id, password: @user.password, shibboleth_id: @user.shibboleth_id, user_status_id: @user.user_status_id, surname: @user.surname, user_type_id: @user.user_type_id }
+ end
+
+ assert_redirected_to user_path(assigns(:user))
+ end
+
+ test "should show user" do
+ get :show, id: @user
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @user
+ assert_response :success
+ end
+
+ test "should update user" do
+ put :update, id: @user, user: { email: @user.email, firstname: @user.firstname, last_login: @user.last_login, login_count: @user.login_count, orcid_id: @user.orcid_id, password: @user.password, shibboleth_id: @user.shibboleth_id, user_status_id: @user.user_status_id, surname: @user.surname, user_type_id: @user.user_type_id }
+ assert_redirected_to user_path(assigns(:user))
+ end
+
+ test "should destroy user" do
+ assert_difference('User.count', -1) do
+ delete :destroy, id: @user
+ end
+
+ assert_redirected_to users_path
+ end
+end
diff --git a/test/functional/versions_controller_test.rb b/test/functional/versions_controller_test.rb
new file mode 100644
index 0000000000..6b4fc364c9
--- /dev/null
+++ b/test/functional/versions_controller_test.rb
@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class VersionsControllerTest < ActionController::TestCase
+ setup do
+ @version = versions(:one)
+ end
+
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:versions)
+ end
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create version" do
+ assert_difference('Version.count') do
+ post :create, version: { description: @version.description, order: @version.order, published: @version.published, title: @version.title }
+ end
+
+ assert_redirected_to version_path(assigns(:version))
+ end
+
+ test "should show version" do
+ get :show, id: @version
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, id: @version
+ assert_response :success
+ end
+
+ test "should update version" do
+ put :update, id: @version, version: { description: @version.description, order: @version.order, published: @version.published, title: @version.title }
+ assert_redirected_to version_path(assigns(:version))
+ end
+
+ test "should destroy version" do
+ assert_difference('Version.count', -1) do
+ delete :destroy, id: @version
+ end
+
+ assert_redirected_to versions_path
+ end
+end
diff --git a/test/integration/.gitkeep b/test/integration/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/test/performance/browsing_test.rb b/test/performance/browsing_test.rb
new file mode 100644
index 0000000000..3fea27b916
--- /dev/null
+++ b/test/performance/browsing_test.rb
@@ -0,0 +1,12 @@
+require 'test_helper'
+require 'rails/performance_test_help'
+
+class BrowsingTest < ActionDispatch::PerformanceTest
+ # Refer to the documentation for all available options
+ # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory]
+ # :output => 'tmp/performance', :formats => [:flat] }
+
+ def test_homepage
+ get '/'
+ end
+end
diff --git a/test/test_helper.rb b/test/test_helper.rb
new file mode 100644
index 0000000000..8bf1192ffe
--- /dev/null
+++ b/test/test_helper.rb
@@ -0,0 +1,13 @@
+ENV["RAILS_ENV"] = "test"
+require File.expand_path('../../config/environment', __FILE__)
+require 'rails/test_help'
+
+class ActiveSupport::TestCase
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
+ #
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
+ # -- they do not yet inherit this setting
+ fixtures :all
+
+ # Add more helper methods to be used by all tests here...
+end
diff --git a/test/unit/.gitkeep b/test/unit/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/test/unit/admin_user_test.rb b/test/unit/admin_user_test.rb
new file mode 100644
index 0000000000..6215c049e7
--- /dev/null
+++ b/test/unit/admin_user_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class AdminUserTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/answer_test.rb b/test/unit/answer_test.rb
new file mode 100644
index 0000000000..c0af5c3fc2
--- /dev/null
+++ b/test/unit/answer_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class AnswerTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb
new file mode 100644
index 0000000000..b6d6131a96
--- /dev/null
+++ b/test/unit/comment_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class CommentTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/dmptemplate_test.rb b/test/unit/dmptemplate_test.rb
new file mode 100644
index 0000000000..db7d28781c
--- /dev/null
+++ b/test/unit/dmptemplate_test.rb
@@ -0,0 +1,203 @@
+require 'test_helper'
+
+class DmptemplateTest < ActiveSupport::TestCase
+
+ def setup
+ @template = dmptemplates(:ahrc_template)
+ end
+
+ def settings(extras = {})
+ {
+ margin: (@margin || { top: 10, bottom: 10, left: 10, right: 10 }),
+ font_face: (@font_face || Settings::Dmptemplate::VALID_FONT_FACES.first),
+ font_size: (@font_size || 11)
+ }.merge(extras)
+ end
+
+ def default_formatting
+ Settings::Dmptemplate::DEFAULT_SETTINGS[:formatting]
+ end
+
+ # settings
+
+ test "settings should use defaults if none defined" do
+ assert(!@template.settings(:export).value?)
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "settings should use defined valid settings" do
+ @template.settings(:export).formatting = settings
+ @template.save!
+
+ assert(@template.settings(:export).value?)
+ assert_equal(settings, @template.settings(:export).formatting)
+ assert_not_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting negative margin should not be valid" do
+ @margin = { top: -10, bottom: 10, left: 10, right: 10 }
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.negative_margin'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting unknown margin should not be valid" do
+ @margin = { top: 10, bottom: 10, left: 10, right: 10, top_left: 10 }
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.unknown_margin'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting negative font-size should not be valid" do
+ @font_size = -11
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.invalid_font_size'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting unknown key should not be valid" do
+ @template.settings(:export).formatting = settings(foo: :bar)
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.unknown_key'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "not setting font_face should not be valid" do
+ @template.settings(:export).formatting = settings.reject {|k,v| k == :font_face }
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.missing_key'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "not setting font_size should not be valid" do
+ @template.settings(:export).formatting = settings.reject {|k,v| k == :font_size }
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.missing_key'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "not setting margin should not be valid" do
+ @template.settings(:export).formatting = settings.reject {|k,v| k == :margin }
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.missing_key'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting non-hash as margin should not be valid" do
+ @margin = :foo
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.invalid_margin'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting non-integer as font_size should not be valid" do
+ @font_size = "foo"
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.invalid_font_size'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting non-string as font_face should not be valid" do
+ @font_face = 1
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.invalid_font_face'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+ test "setting unknown string as font_face should not be valid" do
+ @font_face = 'Monaco, Monospace, Sans-Serif'
+
+ @template.settings(:export).formatting = settings
+
+ assert(!@template.valid?)
+ assert(!@template.save)
+
+ assert_equal(I18n.t('helpers.settings.plans.errors.invalid_font_face'),
+ @template.errors.messages[:'setting_objects.formatting'].first)
+
+ @template.reload
+
+ assert_equal(default_formatting, @template.settings(:export).formatting)
+ end
+
+end
diff --git a/test/unit/file_type_test.rb b/test/unit/file_type_test.rb
new file mode 100644
index 0000000000..7aa35b7c03
--- /dev/null
+++ b/test/unit/file_type_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class FileTypeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/file_upload_test.rb b/test/unit/file_upload_test.rb
new file mode 100644
index 0000000000..a3d1e00568
--- /dev/null
+++ b/test/unit/file_upload_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class FileUploadTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/guidance_test.rb b/test/unit/guidance_test.rb
new file mode 100644
index 0000000000..a1f0570f6b
--- /dev/null
+++ b/test/unit/guidance_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class GuidanceTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/helpers/answers_helper_test.rb b/test/unit/helpers/answers_helper_test.rb
new file mode 100644
index 0000000000..a044015276
--- /dev/null
+++ b/test/unit/helpers/answers_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class AnswersHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/dmptemplates_helper_test.rb b/test/unit/helpers/dmptemplates_helper_test.rb
new file mode 100644
index 0000000000..a6efb528e7
--- /dev/null
+++ b/test/unit/helpers/dmptemplates_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class DmptemplatesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/file_types_helper_test.rb b/test/unit/helpers/file_types_helper_test.rb
new file mode 100644
index 0000000000..e04a1af2fd
--- /dev/null
+++ b/test/unit/helpers/file_types_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class FileTypesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/file_uploads_helper_test.rb b/test/unit/helpers/file_uploads_helper_test.rb
new file mode 100644
index 0000000000..bffc26827a
--- /dev/null
+++ b/test/unit/helpers/file_uploads_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class FileUploadsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/guidances_helper_test.rb b/test/unit/helpers/guidances_helper_test.rb
new file mode 100644
index 0000000000..04ca11cc3b
--- /dev/null
+++ b/test/unit/helpers/guidances_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class GuidancesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/home_helper_test.rb b/test/unit/helpers/home_helper_test.rb
new file mode 100644
index 0000000000..4740a18dac
--- /dev/null
+++ b/test/unit/helpers/home_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class HomeHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/organisation_types_helper_test.rb b/test/unit/helpers/organisation_types_helper_test.rb
new file mode 100644
index 0000000000..00e09fe71a
--- /dev/null
+++ b/test/unit/helpers/organisation_types_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class OrganisationTypesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/organisations_helper_test.rb b/test/unit/helpers/organisations_helper_test.rb
new file mode 100644
index 0000000000..8c4d907802
--- /dev/null
+++ b/test/unit/helpers/organisations_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class OrganisationsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/pages_helper_test.rb b/test/unit/helpers/pages_helper_test.rb
new file mode 100644
index 0000000000..535dfe179b
--- /dev/null
+++ b/test/unit/helpers/pages_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class PagesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/phases_helper_test.rb b/test/unit/helpers/phases_helper_test.rb
new file mode 100644
index 0000000000..568a8c59e8
--- /dev/null
+++ b/test/unit/helpers/phases_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class PhasesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/plan_sections_helper_test.rb b/test/unit/helpers/plan_sections_helper_test.rb
new file mode 100644
index 0000000000..7b2f02537d
--- /dev/null
+++ b/test/unit/helpers/plan_sections_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class PlanSectionsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/plans_helper_test.rb b/test/unit/helpers/plans_helper_test.rb
new file mode 100644
index 0000000000..db7b075671
--- /dev/null
+++ b/test/unit/helpers/plans_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class PlansHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/project_groups_helper_test.rb b/test/unit/helpers/project_groups_helper_test.rb
new file mode 100644
index 0000000000..4f6c5da7f9
--- /dev/null
+++ b/test/unit/helpers/project_groups_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class ProjectGroupsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/project_partners_helper_test.rb b/test/unit/helpers/project_partners_helper_test.rb
new file mode 100644
index 0000000000..918cc6c061
--- /dev/null
+++ b/test/unit/helpers/project_partners_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class ProjectPartnersHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/projects_helper_test.rb b/test/unit/helpers/projects_helper_test.rb
new file mode 100644
index 0000000000..a591e4e785
--- /dev/null
+++ b/test/unit/helpers/projects_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class ProjectsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/question_themes_helper_test.rb b/test/unit/helpers/question_themes_helper_test.rb
new file mode 100644
index 0000000000..0afaf4c786
--- /dev/null
+++ b/test/unit/helpers/question_themes_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class QuestionThemesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/questions_helper_test.rb b/test/unit/helpers/questions_helper_test.rb
new file mode 100644
index 0000000000..a19028839e
--- /dev/null
+++ b/test/unit/helpers/questions_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class QuestionsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/sections_helper_test.rb b/test/unit/helpers/sections_helper_test.rb
new file mode 100644
index 0000000000..3ff6eac90e
--- /dev/null
+++ b/test/unit/helpers/sections_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class SectionsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/themes_helper_test.rb b/test/unit/helpers/themes_helper_test.rb
new file mode 100644
index 0000000000..b421fb26ab
--- /dev/null
+++ b/test/unit/helpers/themes_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class ThemesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/user_org_roles_helper_test.rb b/test/unit/helpers/user_org_roles_helper_test.rb
new file mode 100644
index 0000000000..2c188bb293
--- /dev/null
+++ b/test/unit/helpers/user_org_roles_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UserOrgRolesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/user_role_types_helper_test.rb b/test/unit/helpers/user_role_types_helper_test.rb
new file mode 100644
index 0000000000..67a467ab1b
--- /dev/null
+++ b/test/unit/helpers/user_role_types_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UserRoleTypesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/user_statuses_helper_test.rb b/test/unit/helpers/user_statuses_helper_test.rb
new file mode 100644
index 0000000000..fe9260b657
--- /dev/null
+++ b/test/unit/helpers/user_statuses_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UserStatusesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/user_types_helper_test.rb b/test/unit/helpers/user_types_helper_test.rb
new file mode 100644
index 0000000000..eaecf635e0
--- /dev/null
+++ b/test/unit/helpers/user_types_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UserTypesHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/users_helper_test.rb b/test/unit/helpers/users_helper_test.rb
new file mode 100644
index 0000000000..96af37a821
--- /dev/null
+++ b/test/unit/helpers/users_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UsersHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/helpers/versions_helper_test.rb b/test/unit/helpers/versions_helper_test.rb
new file mode 100644
index 0000000000..4974ea4d35
--- /dev/null
+++ b/test/unit/helpers/versions_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class VersionsHelperTest < ActionView::TestCase
+end
diff --git a/test/unit/organisation_test.rb b/test/unit/organisation_test.rb
new file mode 100644
index 0000000000..8dc35ffebe
--- /dev/null
+++ b/test/unit/organisation_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class OrganisationTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/organisation_type_test.rb b/test/unit/organisation_type_test.rb
new file mode 100644
index 0000000000..67b99448bd
--- /dev/null
+++ b/test/unit/organisation_type_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class OrganisationTypeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/page_test.rb b/test/unit/page_test.rb
new file mode 100644
index 0000000000..e7400b9180
--- /dev/null
+++ b/test/unit/page_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class PageTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/phase_test.rb b/test/unit/phase_test.rb
new file mode 100644
index 0000000000..327fab8ab2
--- /dev/null
+++ b/test/unit/phase_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class PhaseTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/plan_section_test.rb b/test/unit/plan_section_test.rb
new file mode 100644
index 0000000000..c8096b5afe
--- /dev/null
+++ b/test/unit/plan_section_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class PlanSectionTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/plan_test.rb b/test/unit/plan_test.rb
new file mode 100644
index 0000000000..1312823a40
--- /dev/null
+++ b/test/unit/plan_test.rb
@@ -0,0 +1,87 @@
+require 'test_helper'
+
+class PlanTest < ActiveSupport::TestCase
+
+ def setup
+ @plan = Plan.new.tap do |p|
+ p.project = Project.new
+ end
+ end
+
+ def settings(extras = {})
+ {
+ margin: (@margin || { top: 10, bottom: 10, left: 10, right: 10 }),
+ font_face: (@font_face || Settings::Dmptemplate::VALID_FONT_FACES.first),
+ font_size: (@font_size || 11)
+ }.merge(extras)
+ end
+
+ # settings
+
+ test "no explicit settings should be Settings::Dmptemplate::DEFAULT_SETTINGS" do
+ assert(!@plan.settings(:export).value?)
+ assert_equal(Settings::Dmptemplate::DEFAULT_SETTINGS[:formatting], @plan.settings(:export).formatting)
+ end
+
+ test "no explicit settings with template settings should use template settings" do
+ template = dmptemplates(:ahrc_template)
+ template.settings(:export).update_attributes(formatting: settings)
+
+ @plan.project.dmptemplate = template
+
+ assert(!@plan.super_settings(:export).value?)
+ assert(template.settings(:export).value?)
+
+ assert_equal(settings, template.settings(:export).formatting)
+ assert_equal(settings, @plan.settings(:export).formatting)
+ end
+
+ test "explicit settings with template settings should use plan settings" do
+ template_settings = settings
+ plan_settings = settings(font_size: 14)
+
+ template = dmptemplates(:ahrc_template)
+ template.settings(:export).update_attributes(formatting: template_settings)
+
+ @plan.project.dmptemplate = template
+ @plan.super_settings(:export).formatting = plan_settings
+ @plan.save!
+ @plan.reload
+
+ assert(@plan.super_settings(:export).value?)
+ assert(@plan.settings(:export).value?)
+ assert(template.settings(:export).value?)
+
+ assert_not_equal(plan_settings, template_settings)
+ assert_equal(template_settings, template.settings(:export).formatting)
+ assert_equal(plan_settings, @plan.settings(:export).formatting)
+ end
+
+ test "explicit settings should not affect other plans with same template" do
+ template_settings = settings
+ plan_settings = settings(font_size: 14)
+
+ template = dmptemplates(:ahrc_template)
+ template.settings(:export).update_attributes(formatting: template_settings)
+
+ @plan.project.dmptemplate = template
+ @plan.super_settings(:export).formatting = plan_settings
+ @plan.save!
+ @plan.reload
+
+ other_plan = Plan.new.tap do |plan|
+ plan.project = Project.new.tap {|p| p.dmptemplate = template }
+ end
+
+ other_plan.save!
+ other_plan.reload
+
+ assert(@plan.super_settings(:export).value?)
+ assert(@plan.settings(:export).value?)
+ assert(template.settings(:export).value?)
+
+ assert_not_equal(plan_settings, other_plan.settings(:export).formatting)
+ assert_equal(template_settings, other_plan.settings(:export).formatting)
+ end
+
+end
diff --git a/test/unit/project_group_test.rb b/test/unit/project_group_test.rb
new file mode 100644
index 0000000000..6f98351005
--- /dev/null
+++ b/test/unit/project_group_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class ProjectGroupTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/project_partner_test.rb b/test/unit/project_partner_test.rb
new file mode 100644
index 0000000000..f4cbfa347d
--- /dev/null
+++ b/test/unit/project_partner_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class ProjectPartnerTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
new file mode 100644
index 0000000000..0821e1fa6a
--- /dev/null
+++ b/test/unit/project_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class ProjectTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/question_test.rb b/test/unit/question_test.rb
new file mode 100644
index 0000000000..88f6ea7fa0
--- /dev/null
+++ b/test/unit/question_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class QuestionTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/section_test.rb b/test/unit/section_test.rb
new file mode 100644
index 0000000000..b8b50399ca
--- /dev/null
+++ b/test/unit/section_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class SectionTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/theme_test.rb b/test/unit/theme_test.rb
new file mode 100644
index 0000000000..8bb174dc7c
--- /dev/null
+++ b/test/unit/theme_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class ThemeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/user_org_role_test.rb b/test/unit/user_org_role_test.rb
new file mode 100644
index 0000000000..1e56359520
--- /dev/null
+++ b/test/unit/user_org_role_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UserOrgRoleTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/user_role_type_test.rb b/test/unit/user_role_type_test.rb
new file mode 100644
index 0000000000..c730fba5b5
--- /dev/null
+++ b/test/unit/user_role_type_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UserRoleTypeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/user_status_test.rb b/test/unit/user_status_test.rb
new file mode 100644
index 0000000000..34b6956f96
--- /dev/null
+++ b/test/unit/user_status_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UserStatusTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb
new file mode 100644
index 0000000000..44a729e953
--- /dev/null
+++ b/test/unit/user_test.rb
@@ -0,0 +1,43 @@
+require 'test_helper'
+
+class UserTest < ActiveSupport::TestCase
+
+ def setup
+ @user = users(:with_many_projects)
+ end
+
+ test "User#projects behaves the same as Project.projects_for_user" do
+ # FIXME: Is the ordering important? If so, don't mask the different orders here!
+ user_projects = @user.projects.pluck(:id).sort
+ projects_for_user = Project.projects_for_user(@user.id).collect {|p| p.id}.sort
+
+ assert_not_empty(user_projects)
+ assert_equal(user_projects, projects_for_user)
+ end
+
+ test "empty filter term returns all projects" do
+ projects = @user.projects
+ filtered = @user.projects.filter('')
+
+ assert_not_empty(projects)
+ assert_equal(projects, filtered)
+ end
+
+ test "nil filter term returns all projects" do
+ projects = @user.projects
+ filtered = @user.projects.filter(nil)
+
+ assert_not_empty(projects)
+ assert_equal(projects, filtered)
+ end
+
+ test "valid filter term only returns matching records" do
+ projects = @user.projects
+ filtered = @user.projects.filter('DCC')
+
+ assert_equal(filtered.count, 1)
+ assert_not_equal(filtered, projects)
+ assert_equal(projects(:test_plan_3), filtered.first)
+ end
+
+end
diff --git a/test/unit/user_type_test.rb b/test/unit/user_type_test.rb
new file mode 100644
index 0000000000..f09e0ac6c4
--- /dev/null
+++ b/test/unit/user_type_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UserTypeTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/unit/version_test.rb b/test/unit/version_test.rb
new file mode 100644
index 0000000000..d6d1a85b7d
--- /dev/null
+++ b/test/unit/version_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class VersionTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end