<%inherit file="site_gallery_base.mako" />

    ${gallery.name} / ${image.title if image.title else 'Untitled image'}

Add edit form for specific images

<%inherit file="site_gallery_base.mako" />

    ${gallery.name} / ${image.title if image.title else 'Untitled image'}

    <form method="post">
        <input type="hidden" name="csrf_token" value="${request.session.get_csrf_token()}" />

            Title
            <input type="text" class="form-control" id="image-title-field" placeholder="Untitled image" value="${image.title if image.title else ''}" />

            Description
            <textarea class="form-control" id="image-description-field" placeholder="Extended image description, if needed." rows="5">${image.description if image.description else ''}</textarea>

        <input type="submit" id="gallery-save-button" value="Save" class="btn btn-primary" />
    </form>


<%page args="section" />

        <%include file="${section['sections'][0]['type']}.mako" args="section=section['sections'][0]" />

        <%include file="${section['sections'][1]['type']}.mako" args="section=section['sections'][1]" />

Add left/right classes for two column layout


<%inherit file="project/addon/widget.mako" />

            This project contains a forward to
            .

            Cancel
            Redirect

            This project contains a forward to
            .

            Redirect

Update styling according to OSF Style Guide


      ${_('Contributors')}
      ${_('Done')}
      ${('Assigned')}

Put chart on top of contributors table


## layout.mako
<%!
    from datetime import datetime
%>
<!DOCTYPE html5>
<html lang="en">
    <head>
        <%block name="head">
            <meta charset="utf-8">
            <%block name="viewport">
                <meta name="viewport" content="width=device-width, initial-scale=1">
            </%block>
            <title><%block name="title"></%block></title>
            <%block name="seo">
                <meta name="description" content="">
                <meta name="author" content="">
            </%block>
            <%block name="include_css">
            </%block>
            <%block name="include_js">
            </%block>
        </%block>
    </head>

    <body>
        <header>
            <%block name="header" />
        </header>

        ${self.body()}

        <footer>
            <%block name="footer">
                <p>© ${datetime.utcnow().year}</p>
            </%block>
        </footer>
    </body>
</html>

Set Petiquette as homepage title

## layout.mako
<%!
    from datetime import datetime
%>
<!DOCTYPE html5>
<html lang="en">
    <head>
        <%block name="head">
            <meta charset="utf-8">
            <%block name="viewport">
                <meta name="viewport" content="width=device-width, initial-scale=1">
            </%block>
            <title><%block name="title">${config['NAME'].title()}</%block></title>
            <%block name="seo">
                <meta name="description" content="">
                <meta name="author" content="">
            </%block>
            <%block name="include_css">
            </%block>
            <%block name="include_js">
            </%block>
        </%block>
    </head>

    <body>
        <header>
            <%block name="header" />
        </header>

        ${self.body()}

        <footer>
            <%block name="footer">
                <p>© ${datetime.utcnow().year}</p>
            </%block>
        </footer>
    </body>
</html>


<%page args="update" />
<%namespace name="userlib" file="/users/lib.mako" />

             ${config['spline.site_title']} news:

${update.post.posted_time}

                ${update.post.thread.subject}

            ${userlib.avatar(update.post.author, size=48)}

${update.post.content}

            ${update.post.thread.post_count - 1} comment${'' if update.post.thread.post_count == 2 else 's'}

Stop escaping HTML on the front page.

<%page args="update" />
<%namespace name="userlib" file="/users/lib.mako" />

             ${config['spline.site_title']} news:

${update.post.posted_time}

                ${update.post.thread.subject}

            ${userlib.avatar(update.post.author, size=48)}

${update.post.content|n}

            ${update.post.thread.post_count - 1} comment${'' if update.post.thread.post_count == 2 else 's'}


<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Forks</%def>

Forks

	    % if node['fork_count']:

	    % else:

There have been no forks of this project.

Forking a project means you have created a copy of it into your dashboard, and can change that copy for your own purposes. You will be the only contributor to the forked project until you add others.

                 Learn more about Forks

	    % endif

Make fork look similar to registrations

<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Forks</%def>

Forks

    % if node['fork_count']:

    % else:

There have been no forks of this project.. Forking a project means you have created a copy of it into your dashboard, and can change that copy for your own purposes. You will be the only contributor to the forked project until you add others.

                 Learn more about Forks

    % endif


clusters:
  - plugin_name: fake
    plugin_version: "0.1"
    image: ${fake_plugin_image}
    node_group_templates:
      - name: aio
        flavor: ${ci_flavor_id}
        node_processes:
          - namenode
          - jobtracker
          - datanode
          - tasktracker
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - jobtracker
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: fake01
      node_group_templates:
        aio: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: fake

Use less resources in sceanrio gate job

clusters:
  - plugin_name: fake
    plugin_version: "0.1"
    image: ${fake_plugin_image}
    node_group_templates:
      - name: aio
        flavor: ${ci_flavor_id}
        node_processes:
          - namenode
          - jobtracker
          - datanode
          - tasktracker
        volumes_per_node: 2
        volumes_size: 1
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - jobtracker
        volumes_per_node: 2
        volumes_size: 1
        auto_security_group: true
    cluster_template:
      name: fake01
      node_group_templates:
        aio: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: fake


# -*- coding: utf-8 -*-

<% packages_shown = False %>
% for packagegroup in c.deltas:
        % if len(packagegroup.packages) > 0:
                <% packages_shown = True %>

${ packagegroup.label }

                    ${ _('Package') }
                    ${ _('Description') }
                    ${ _('Version') }
                    ${ _('Uploader') }
                    ${ _('Needs a sponsor') }?

                % for package in packagegroup.packages:

                        ${ package.name }
                        ${ package.get_description_nl2br() | n }
                        ${ package.package_versions[-1].version }
                        ${ package.user.name }

                        % if package.needs_sponsor:
                                ${ _('Yes') }
                        % else:
                                ${ _('No') }
                        % endif

                % endfor

        % endif
% endfor

% if packages_shown == False:
              ${ _('No packages') }
% endif

Put quotation marks around an HTML attribute value


Hello ${fullname},

Congratulations! You have successfully added your ${conf_full_name} ${presentation_type} to the Open Science Framework (OSF).

% if user_created:
Your account on the Open Science Framework has been created. To claim your account, please create a password by clicking here: ${set_password_url}. Please verify your profile information at: ${profile_url}.

% endif
You now have a permanent, citable URL, that you can share: ${node_url}. All submissions for ${conf_full_name} may be viewed at the following link: ${conf_view_url}.

% if is_spam:
Your email was flagged as spam by our mail processing service. To prevent potential spam, we have made your project private. If this is a real project, please log in to your account, browse to your project, and click the "Make Public" button so that other users can view it.

% endif
Get more from the OSF by enhancing your project with the following:

* Collaborators/contributors to the submission
* Charts, graphs, and data that didn't make it onto the submission
* Links to related publications or reference lists
* Connecting other accounts, like Dropbox, Google Drive, GitHub, figshare and Mendeley via add-on integration. Learn more and read the full list of available add-ons: http://osf.io/getting-started/#addons

To learn more about the OSF, visit: http://osf.io/getting-started

Sincerely yours,

The OSF Robot

Fix newline issues in OSF4M triggered email


<%page args="section" />

<div class="section-type-container section-type-text">
    <textarea id="text_${section.id}" style="clear: both; height: 300px; margin-top: 2.0em;" class="section-form-element" data-section-id="${section.id}" data-section-type="text" name="content">${section.content if section.content else ''}</textarea>
</div>

<script type="text/javascript">
    tinymce.init({
        menubar: false,
        statusbar: false,
        selector: '#text_${section.id}',
        valid_styles: { '*' : 'color,font-weight,font-style,text-decoration,text-align' },
        content_css: "${request.static_url('kimochi:static/tinymce.css')}",
        toolbar: "undo redo | styleselect hr | bold italic fontsizeselect | forecolor backcolor removeformat | alignleft aligncenter alignright |  link unlink | ",
        plugins: "hr link textcolor"
    });
</script>

Add background-color as allowed to tinymce config

<%page args="section" />

<div class="section-type-container section-type-text">
    <textarea id="text_${section.id}" style="clear: both; height: 300px; margin-top: 2.0em;" class="section-form-element" data-section-id="${section.id}" data-section-type="text" name="content">${section.content if section.content else ''}</textarea>
</div>

<script type="text/javascript">
    tinymce.init({
        menubar: false,
        statusbar: false,
        selector: '#text_${section.id}',
        valid_styles: { '*' : 'color,background-color,font-weight,font-style,text-decoration,text-align' },
        content_css: "${request.static_url('kimochi:static/tinymce.css')}",
        toolbar: "undo redo | styleselect hr | bold italic fontsizeselect | forecolor backcolor removeformat | alignleft aligncenter alignright |  link unlink | ",
        plugins: "hr link textcolor"
    });
</script>


<%inherit file="project/addon/widget.mako"/>
<%page expression_filter="h"/>

    % if wiki_content:
        ${wiki_content | n}
    % else:

No wiki content

    % endif

<% import json %>

Add break-word class to wiki widget


<%include file="_header.mako"/>

This is an automated message from ISIC Archive.
You are receiving this message because you are
 a moderator of the "${group['name']}" group.

User ${user['login']}
(${user['firstName']} ${user['lastName']})
requested access to contribute datasets.

To approve or deny the request, visit the "${group['name']}" group page:

${host}/girder#group/${group['_id']}/pending

<%include file="_footer.mako"/>

Update dataset contributor request email message text

<%include file="_header.mako"/>

This is an automated message from the ISIC Archive. You are receiving this
message because you are a moderator of the "${group['name']}" group.

User ${user['login']}
(${user['firstName']} ${user['lastName']})
requested access to contribute datasets.

To approve or deny the request, visit the "${group['name']}" group page:

${host}/girder#group/${group['_id']}/pending

<%include file="_footer.mako"/>


<%inherit file="base.mako"/>
<%def name="title()">Files</%def>
<%def name="content()">

To Upload: Drag files from your desktop and drop into folder below or click an upload (<button class="btn btn-default btn-mini" disabled></button>) button.

</%def>

<%def name="stylesheets()">
% for stylesheet in tree_css:
<link rel='stylesheet' href='${stylesheet}' type='text/css' />
% endfor
</%def>

<%def name="javascript_bottom()">
% for script in tree_js:

% endfor

</%def>

Fix grammar and accentuate OR

<%inherit file="base.mako"/>
<%def name="title()">Files</%def>
<%def name="content()">

To Upload: Drag files from your desktop into a folder below OR click an upload (<button class="btn btn-default btn-mini" disabled></button>) button.

</%def>

<%def name="stylesheets()">
% for stylesheet in tree_css:
<link rel='stylesheet' href='${stylesheet}' type='text/css' />
% endfor
</%def>

<%def name="javascript_bottom()">
% for script in tree_js:

% endfor

</%def>


<%inherit file="base.mako"/>

<%def name="body_content()">
    % for quote in c.quotes:

${quote.submitted}

Up ${quote.rating}

Down ${quote.votes - quote.rating}

${quote.submitted}

            ${self.insert_quote_body(quote)}

    % endfor
</%def>

<%def name="insert_quote_body(quote)">

${quote.body.decode('latin1') | h}

</%def>

Fix display of scores etc

<%inherit file="base.mako"/>

<%def name="body_content()">
    % for quote in c.quotes:

${quote.submitted}

Score ${quote.rating}

Up ${quote.votes}

Down ${quote.votes - quote.rating}

${quote.submitted}

            ${self.insert_quote_body(quote)}

    % endfor
</%def>

<%def name="insert_quote_body(quote)">

${quote.body.decode('latin1') | h}

</%def>


<%inherit file="project/addon/widget.mako"/>

    % if wiki_content:
        ${wiki_content}
    % else:

No wiki content

    % endif

    % if more:
        Read More
    % endif

Change scroll to auto to hide when unneeded


<%inherit file="base.mako"/>
<%def name="title()">Project Settings</%def>
<%def name="content()">

<button id="delete-node" class="btn primary">Delete ${node_category}</button>

</%def>

Remove unnecessary modal when canceling project deletion


"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}
"""

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}

Improve import order in alembic script template

"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}
"""

import sqlalchemy as sa
from alembic import op
${imports + '\n' if imports else ""}

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}


<%def name="type(t)">
    %if t:
        ${t.canonical | h}
    %endif
</%def>

<%def name="struct(s)">

struct ${s.name}${generic_vars(s)}

    ${s.description}

Members:

    % for m in s.members:

        ${m.type.canonical if m.type else "" | h} ${m.name}

            ${m.description}

    % endfor

</%def>

<%def name="typedef(t)">
    %if t.is_builtin:

builtin ${t.name}

    %else:

type ${t.name}${generic_vars(t)} = ${t.definition.canonical | h}

    %endif

        ${t.description}

</%def>

<%def name="generic_vars(t)">
    %if t.generic:
        <
        %for v in t.generic_variables:
            ${v}
            %if not loop.last:
                ,
            %endif
        %endfor
        >
    %endif
</%def>

Add type xref to struct members.

<%def name="type(t)">
    %if t:
        ${t.canonical | h}
    %endif
</%def>

<%def name="struct(s)">

struct ${s.name}${generic_vars(s)}

${s.description}

Members:

    % for m in s.members:

        ${type(m.type)} ${m.name}

            ${m.description}

    % endfor

</%def>

<%def name="typedef(t)">
    %if t.is_builtin:

builtin ${t.name}

    %else:

type ${t.name}${generic_vars(t)} = ${t.definition.canonical | h}

    %endif

        ${t.description}

</%def>

<%def name="generic_vars(t)">
    %if t.generic:
        <
        %for v in t.generic_variables:
            ${v}
            %if not loop.last:
                ,
            %endif
        %endfor
        >
    %endif
</%def>


% if mode == 'definition':
Balanced::Verification.confirm

% elif mode == 'request':
require 'balanced'
Balanced.configure('ak-test-nngzAf2ARJV0AA4zzxdyVYJWRa0WLa5I')

verification = Balanced::Verification.fetch('/verifications/BZ6Hm2DoTpcgoDzbIr6dWHpw')
verification.confirm(
  amount_1 = 1,
  amount_2 = 1

% elif mode == 'response':

#<Balanced::BankAccountVerification:0x007feca99d3c38
 @attributes=
  {"attempts"=>1,
   "attempts_remaining"=>2,
   "created_at"=>"2014-01-16T20:00:34.173888Z",
   "deposit_status"=>"succeeded",
   "href"=>"/verifications/BZ6Hm2DoTpcgoDzbIr6dWHpw",
   "id"=>"BZ6Hm2DoTpcgoDzbIr6dWHpw",
   "links"=>{"bank_account"=>"BA6FDSSC6O5Ip8el1dDjfMz8"},
   "meta"=>{},
   "updated_at"=>"2014-01-16T20:00:37.657681Z",
   "verification_status"=>"succeeded"},
 @hyperlinks=
  {"bank_account"=>
    #<Proc:0x007feca99d1fc8/lib/balanced/resources/resource.rb:60 (lambda)>}>

% endif

Add back the closing parenthesis

% if mode == 'definition':
Balanced::Verification.confirm

% elif mode == 'request':
require 'balanced'
Balanced.configure('ak-test-nngzAf2ARJV0AA4zzxdyVYJWRa0WLa5I')

verification = Balanced::Verification.fetch('/verifications/BZ30hb4BvSmoUMZiDdIMyz8K')
verification.confirm(
  amount_2 = 1,
  amount_1 = 1
)

% elif mode == 'response':
#<Balanced::BankAccountVerification:0x1049fc888
 @attributes=
  {"id"=>"BZ30hb4BvSmoUMZiDdIMyz8K",
   "href"=>"/verifications/BZ30hb4BvSmoUMZiDdIMyz8K",
   "meta"=>{},
   "attempts"=>1,
   "verification_status"=>"succeeded",
   "deposit_status"=>"succeeded",
   "updated_at"=>"2014-01-24T17:53:12.552232Z",
   "attempts_remaining"=>2,
   "links"=>{"bank_account"=>"BA2YEZjgBPUBzXgxXfjUeenw"},
   "created_at"=>"2014-01-24T17:53:09.290866Z"},
 @hyperlinks=
  {"bank_account"=>
    #<Proc:0x0000000104a86880@./lib/balanced/resources/resource.rb:60>}>

% endif


<%inherit file="project/addon/widget.mako" />

            This project contains a forward to
            .

You will be automatically forwarded in  seconds.

            Cancel
            Redirect

            This project contains a forward to
            .

            Redirect

Remove blank target from forward widget for project


# -*- coding: utf-8 -*-
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
  %for page in c.pages:
    %for map_media in page.map_media:
      <Placemark>
        <name>${page.name}</name>
        <description>
          <![CDATA[

            ${page.name}
            ${h.plural(len(page.comments), 'comment', 'comments')}
            Updated ${page.updated_date_string}

          ]]>
        </description>
        <Point>
          <coordinates>${map_media.location_4326.centroid.x},${map_media.location_4326.centroid.y},0</coordinates>
        </Point>
      </Placemark>
    %endfor
  %endfor
</Document>
</kml>

Add the page icon to the KML


<%inherit file="base.mako"/>

<%block name="content">

Look! I made a website!

I'm a software developer. Things that I like include Math, Linux, open
source, tikka masala, Python and Canada.

You can check out my blog if you like, or you can
play with some code I wrote. Not much else to do here.

Of course, you can find the full source for the site
on GitHub.

Have a nice day!
William

</%block>

Fix link to site source


## -*- coding: utf-8 -*-
<%inherit file="notify_base.mako"/>
<%def name="content()">

        Hello ${fullname},

        We’ve noticed it’s been a while since you used the Open Science Framework (OSF). We are constantly adding and improving features, so we thought it might be time to check in with you.
        Most researchers begin using the OSF by creating a project to organize their files and notes. Projects are equipped with powerful features to help you manage your research:

You can keep your work private, or make it public and share it with others

You can use the wiki to live-edit content with your collaborators

You can connect to third-party services like Dropbox or Google Drive

        To get started now, visit your dashboard and click on “Create a project.”
        If you have specific questions, or would like to set up a free training session for you and your colleagues, please do not hesitate to get in touch with us!

        Best,

        COS Support Team

</%def>
<%def name="footer()">

    The Open Science Framework is provided as a free, open source service from the Center for Open Science.
</%def>

Add new language and new links.

## -*- coding: utf-8 -*-
<%inherit file="notify_base.mako"/>
<%def name="content()">

        Hello ${fullname},

        We’ve noticed it’s been a while since you used the Open Science Framework (OSF). We are constantly adding and improving features, so we thought it might be time to check in with you.
        Most researchers begin using the OSF by creating a project to organize their files and notes. Projects are equipped with powerful features to help you manage your research:

You can keep your work private, or make it public and share it with others

You can use the wiki to live-edit content with your collaborators

You can connect to third-party services like Dropbox or Google Drive

        To get started now, visit your dashboard and click on “Create a project.”
        Need help getting started with a project? Check out the OSF Help Guides or one of our recent OSF 101 webinars.

        Best,

        COS Support Team

</%def>
<%def name="footer()">

    The Open Science Framework is provided as a free, open source service from the Center for Open Science.
</%def>


<%page args="current_page=''" />

Profile Information

        Account Settings

        Configure Add-on Accounts

        Notifications

Fix proper active class highlight in profile settings


Hello ${user.fullname},

% if is_initiator:
You initiated a registration of your project ${project_name}.
% else:
${initiated_by} has initiated a registration of your project ${project_name}.
% endif
The pending registration can be viewed here: ${registration_link}.

To approve this registration, click the following link: ${approval_link}

To immediately cancel this registration, click the following link: ${disapproval_link}

Note: If you take no action within ${approval_time_span} hours, the registration will be automatically approved. This operation is irreversible.

Sincerely yours,

The OSF Robots

Reformat so link is inline in both branches

Hello ${user.fullname},

% if is_initiator:
You initiated a registration of your project ${project_name}. The pending registration can be viewed here: ${registration_link}.
% else:
${initiated_by} has initiated a registration of your project ${project_name}. The pending registration can be viewed here: ${registration_link}.
% endif

To approve this registration, click the following link: ${approval_link}

To immediately cancel this registration, click the following link: ${disapproval_link}

Note: If you take no action within ${approval_time_span} hours, the registration will be automatically approved. This operation is irreversible.

Sincerely yours,

The OSF Robots


Files

Each project and component can have its own set of files. This allows you to organize your files into meaningful
        groups like datasets or background research.

Each file is given a unique URL, meaning that it can be cited or linked to individually.

To upload a file, click on "Files" in the grey navigation bar under the Project/Component's title. Here you
        can drag the file from your desktop on to the screen to upload, or click on the upload button in the actions
        column. To download a file from a project, click the download button in the actions column. You can delete
        files by clicking the 'X' that appears when you hover over the file. You can create folders to organize files by clicking the + button to the right of the upload button.

Only contributors of that component with writing privileges can add or delete a file. If a component is set to
        be private, then no one will be able to see the enclosed files, but public components and projects allow
        anyone to download their materials.

Use x and + icons from fontawesome

Files

Each project and component can have its own set of files. This allows you to organize your files into meaningful
        groups like datasets or background research.

Each file is given a unique URL, meaning that it can be cited or linked to individually.

To upload a file, click on "Files" in the grey navigation bar under the Project/Component's title. Here you
        can drag the file from your desktop on to the screen to upload, or click on the upload button in the actions
        column. To download a file from a project, click the download button in the actions column. You can delete
        files by clicking the  that appears when you hover over the file. You can create folders to organize files by clicking the  button to the right of the upload button.

Only contributors of that component with writing privileges can add or delete a file. If a component is set to
        be private, then no one will be able to see the enclosed files, but public components and projects allow
        anyone to download their materials.


<%inherit file="project/addon/widget.mako"/>
<%page expression_filter="h"/>

    % if wiki_content:
        ${wiki_content | n}
    % else:

No wiki content

    % endif

<% import json %>

Add read more link in new div

<%inherit file="project/addon/widget.mako"/>
<%page expression_filter="h"/>

    % if wiki_content:
        ${wiki_content | n}
    % else:

No wiki content

    % endif

    % if more:
        Read More
    % endif

<% import json %>


Hello ${fullname},

Congratulations! You have successfully added your ${conf_full_name} ${presentation_type} to the Open Science Framework (OSF).

% if user_created:
Your account on the Open Science Framework has been created. To claim your account, please create a password by clicking here: ${set_password_url}. Please verify your profile information at: ${profile_url}.

% endif
You now have a permanent, citable URL, that you can share: ${node_url}. All submissions for ${conf_full_name} may be viewed at the following link: ${conf_view_url}.

% if is_spam:
Your email was flagged as spam by our mail processing service. To prevent potential spam, we have made your project private. If this is a real project, please log in to your account, browse to your project, and click the "Make Public" button so that other users can view it.

% endif
Get more from the OSF by enhancing your project with the following:

* Collaborators/contributors to the submission
* Charts, graphs, and data that didn't make it onto the submission
* Links to related publications or reference lists
* Connecting other accounts, like Dropbox, Google Drive, GitHub, figshare and Mendeley via add-on integration. Learn more and read the full list of available add-ons: http://osf.io/getting-started/#addons

To learn more about the OSF, visit: http://osf.io/getting-started

Sincerely yours,
The OSF Robot

Fix newline issue in triggered email for OSF4M submission


<%inherit file="site.mako" />

API Tickets

% if tickets:

You have the following API tickets:

    % for ticket in tickets:

${print_pre(ticket)}

    % endfor

% else:

You don't have any API tickets yet

% endif

New API Ticket

    ${form|n}

<%block name="title">Home - ${parent.title()}</%block>
<%def name="print_pre(lines)">
% for line in lines:
${line}
% endfor
</%def>

Update the title for the API page

<%inherit file="site.mako" />

API Tickets

% if tickets:

You have the following API tickets:

    % for ticket in tickets:

${print_pre(ticket)}

    % endfor

% else:

You don't have any API tickets yet

% endif

New API Ticket

    ${form|n}

<%block name="title">API Tickets - ${parent.title()}</%block>
<%def name="print_pre(lines)">
% for line in lines:
${line}
% endfor
</%def>


<%page args="environ, cookies"/>\
<%namespace module="copyvios.background" import="get_desc_url"/>\

Copyright © 2009–2013 Ben Kurtovic • \
                Contact • \
                View Source • \
                % if ("CopyviosBackground" in cookies and cookies["CopyviosBackground"].value in ["potd", "list"]) or "CopyviosBackground" not in cookies:
                    Background • \
                % endif
                Valid HTML5

Remove unnecessary contact link, since my userpage is right before it.

<%page args="environ, cookies"/>\
<%namespace module="copyvios.background" import="get_desc_url"/>\

Copyright © 2009–2013 Ben Kurtovic • \
                View Source • \
                % if ("CopyviosBackground" in cookies and cookies["CopyviosBackground"].value in ["potd", "list"]) or "CopyviosBackground" not in cookies:
                    Background • \
                % endif
                Valid HTML5


clusters:
  - plugin_name: spark
    plugin_version: 1.3.1
    image: ${spark_1_3_image}
    node_group_templates:
      - name: master
        flavor_id: ${ci_flavor_id}
        node_processes:
          - master
          - namenode
        auto_security_group: true
      - name: worker
        flavor_id: ${ci_flavor_id}
        node_processes:
          - datanode
          - slave
        auto_security_group: true
    cluster_template:
      name: spark131
      node_group_templates:
        master: 1
        worker: 1
      cluster_configs:
        HDFS:
          dfs.replication: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: spark_edp

Migrate to flavor field in spark 1.3.1

clusters:
  - plugin_name: spark
    plugin_version: 1.3.1
    image: ${spark_1_3_image}
    node_group_templates:
      - name: master
        flavor: ${ci_flavor_id}
        node_processes:
          - master
          - namenode
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - slave
        auto_security_group: true
    cluster_template:
      name: spark131
      node_group_templates:
        master: 1
        worker: 1
      cluster_configs:
        HDFS:
          dfs.replication: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: spark_edp


Licenses

On a project's Overview page, you can add a license by clicking the “No license” text below the project's description.

Update license picker text to include more info

Licenses

You can add a license to your project to allow others to copy, distribute, and make use of your data while allowing you to retain copyright. On a project's Overview page, add a license by clicking the “No license” text below the project's description and choose from a selection of common license types or upload your own. Not sure what license to apply to your work? Get detailed information here:http://choosealicense.com/


clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: master-edp
        flavor: ${ci_flavor_id}
        node_processes:
          - Hive Metastore
          - HiveServer
          - Oozie
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        master-edp: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow:
      - java_job

Support of Spark EDP in Ambari plugin

clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - Spark History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: master-edp
        flavor: ${ci_flavor_id}
        node_processes:
          - Hive Metastore
          - HiveServer
          - Oozie
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        master-edp: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow:
      - java_job
      - spark_pi


clusters:
  - plugin_name: spark
    plugin_version: 1.0.0
    image: ${spark_image}
    node_group_templates:
      - name: master
        flavor: ${ci_flavor_id}
        node_processes:
          - master
          - namenode
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - slave
        auto_security_group: true
    cluster_template:
      name: spark100
      node_group_templates:
        master: 1
        worker: 1
      cluster_configs:
        HDFS:
          dfs.replication: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow:
      - spark_pi
      - spark_wordcount

Add EDP job flow for spark-1.0.0


<%inherit file="layouts/application.mako"/>

<ul>
% for object in c.objects:
<%
t = object.type
print t
%>
% if t == 'Commit':
<li> Commit ${object.sha1} comes from repositories: ${', '.join([r.url for r in object.repositories])} </li>
% elif t == 'Blob':
<li> Blob ${object.sha1} comes from commits: ${', '.join([r.sha1 for r in object.commits])} and repositories: ${', '.join([r.url for r in object.repositories])} </li>
% endif
% endfor
</ul>

Fix the template to work with the new data model.

<%inherit file="layouts/application.mako"/>

<ul>
% for object in c.objects:
% if object.type == 'commit':
<li> Commit ${object.name} comes from repositories: ${', '.join([r.url for r in object.repositories])} </li>
% elif object.type == 'blob':
<li> Blob ${object.name} comes from commits: ${', '.join([r.name for r in object.commits])} and repositories: ${', '.join([r.url for r in object.repositories])} </li>
% endif
% endfor
</ul>


Dear ${user.fullname},

Thank you for submitting your research plan to the Preregistration Challenge.

Reviewers have made comments on your plan. We require that you address the comments found on ${draft_url} and resubmit.

Each submission must pass this review process in which the statistical methods of the proposed study and its analyses are checked for completeness and adherence to Preregistration Challenge eligibility requirements (https://cos.io/prereg). This review does not assess the substance of the research, or the validity of the research design or statistical methodology. This review has no impact on the independent editorial decisions of any journal.

Prereg Challenge administrators and reviewers review the submitted study design and analysis descriptions, and determine whether all question fields are answered with enough detail to fully pre-specify the design and analysis plan, and follow the eligibility requirements. See https://osf.io/h4ga8/ to learn more about the guidelines that reviewers use when evaluating your submitted plans.

Sincerely,
The team at the Center for Open Science

Make sure signoff includes a line break


<div style="word-wrap: break-word;" class="mfrViewer">
${body}
</div>

<script src="/static/js/mfr.js"></script>
<script src="/static/js/mfr.child.js"></script>

Use new style guide on markdown renderer template

<link rel="stylesheet" href="static/css/default.css">
<div style="word-wrap: break-word;" class="mfrViewer">
${body}
</div>

<script src="/static/js/mfr.js"></script>
<script src="/static/js/mfr.child.js"></script>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>AutoNetkit plot</title>
	<link rel="stylesheet" href="../jsplot/style.css" type="text/css">

AutoNetkit plot

  <canvas id="viewport" width="800" height="600"></canvas>

  Plotted by AutoNetkit using arbor.js

Fix incorrect URL to our own website :/


<%def name="kind()">
    preregistration
</%def>

<%def name="challenge_word()">challenge</%def>

<%def name="description()">

The process of creating a ${kind()} is beneficial to both the scientific field and to you, the scientist. By writing out detailed data collection methods, analysis plans, and rules for excluding or missing data, you can make important decisions that affect your workflow earlier, without the biases that occur once the data are in front of you.

</%def>

<%def name="steps()">

Specify all your study and analysis decisions prior to investigating your data

Publish your study in an eligible journal

Receive $1,000

</%def>

Use newer prereg eligible journals url


<%inherit file="site.mako"/>

This is the Open Chord Charts project. The aim is to collect chord charts under a free data licence.

View charts »

Change link to about section.

<%inherit file="site.mako"/>

This is the Open Chord Charts project. The aim is to collect chord charts under a free data licence.

Learn more »


## Template for the "Box" section in the "Configure Add-ons" panel

        Box

                    authorized
                    by {{ boxName }}
                    Delete Access Token

                Create Access Token

<%include file="profile/addon_permissions.mako" />

Add missing
 to Box user settings template


<%page args="is_transient='false', use_auto_security_group='true'"/>

clusters:
  - plugin_name: fake
    plugin_version: "0.1"
    image: ${fake_plugin_image}
    node_group_templates:
      - name: aio
        flavor: ${ci_flavor_id}
        node_processes:
          - namenode
          - jobtracker
          - datanode
          - tasktracker
        auto_security_group: ${use_auto_security_group}
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - jobtracker
        auto_security_group: ${use_auto_security_group}
    cluster_template:
      name: fake01
      node_group_templates:
        aio: 1
    cluster:
      name: ${cluster_name}
      is_transient: ${is_transient}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: fake

Revert "Temp workaround: drop volumes from tests"

<%page args="is_transient='false', use_auto_security_group='true'"/>

clusters:
  - plugin_name: fake
    plugin_version: "0.1"
    image: ${fake_plugin_image}
    node_group_templates:
      - name: aio
        flavor: ${ci_flavor_id}
        node_processes:
          - namenode
          - jobtracker
          - datanode
          - tasktracker
        volumes_per_node: 2
        volumes_size: 1
        auto_security_group: ${use_auto_security_group}
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - datanode
          - jobtracker
        auto_security_group: ${use_auto_security_group}
    cluster_template:
      name: fake01
      node_group_templates:
        aio: 1
    cluster:
      name: ${cluster_name}
      is_transient: ${is_transient}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow: fake


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Tag Poll</title>

    <!-- Bootstrap core CSS -->
    <link href="${request.static_url('tagpoll:static/css/bootstrap.css')}" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="${request.static_url('tagpoll:static/css/site.css')}" rel="stylesheet">

  </head>

  <body>

    <div class="container" ng-app="tagpoll">

      ${next.body()}

    </div><!-- /.container -->

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="${request.static_url('tagpoll:static/js/jquery-2.0.3.js')}"></script>
    <script src="${request.static_url('tagpoll:static/js/lodash.js')}"></script>
    <script src="${request.static_url('tagpoll:static/js/bootstrap.js')}"></script>
    <script src="${request.static_url('tagpoll:static/js/angular.js')}"></script>
    <script src="${request.static_url('tagpoll:static/js/site.js')}"></script>
  </body>
</html>

Use relative paths for the assets.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Tag Poll</title>

    <!-- Bootstrap core CSS -->
    <link href="${request.static_path('tagpoll:static/css/bootstrap.css')}" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="${request.static_path('tagpoll:static/css/site.css')}" rel="stylesheet">

  </head>

  <body>

    <div class="container" ng-app="tagpoll">

      ${next.body()}

    </div><!-- /.container -->

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="${request.static_path('tagpoll:static/js/jquery-2.0.3.js')}"></script>
    <script src="${request.static_path('tagpoll:static/js/lodash.js')}"></script>
    <script src="${request.static_path('tagpoll:static/js/bootstrap.js')}"></script>
    <script src="${request.static_path('tagpoll:static/js/angular.js')}"></script>
    <script src="${request.static_path('tagpoll:static/js/site.js')}"></script>
  </body>
</html>


clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: master-edp
        flavor: ${ci_flavor_id}
        node_processes:
          - Hive Metastore
          - HiveServer
          - Oozie
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        master-edp: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow:
      - pig_job
      - mapreduce_job
      - mapreduce_streaming_job
      - java_job

Disable security for Oozie in Ambari

clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: master-edp
        flavor: ${ci_flavor_id}
        node_processes:
          - Hive Metastore
          - HiveServer
          - Oozie
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        master-edp: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow:
      - java_job


Hello ${fullname},

You have been added by ${referrer.fullname} as a contributor to the project "${node.title}" on the Open Science Framework. To set a password for your account, visit:

${claim_url}

Once you have set a password, you will be able to make contributions to ${node.title} and create your own projects.

If you are not ${fullname} or you are erroneously being associated with ${node.title} then email contact@osf.io with the subject line "Claiming Error" to report the problem.

Sincerely,

Open Science Framework Robot

Want more information? Visit http://osf.io/ to learn about the Open Science Framework, or http://cos.io/ for information about its supporting organization, the Center for Open Science. Questions? Email contact@osf.io

Add settings update wording to invite email

<%!
    from website import settings
%>

Hello ${fullname},

You have been added by ${referrer.fullname} as a contributor to the project "${node.title}" on the Open Science Framework. To set a password for your account, visit:

${claim_url}

Once you have set a password, you will be able to make contributions to ${node.title} and create your own projects. You will also automatically be subscribed to notifications when a comment is added or a file is changed on this project. To change your email notification preferences once you've created your account, visit your project or your user settings: ${settings.DOMAIN + "settings/notifications/"}

If you are not ${fullname} or you are erroneously being associated with ${node.title} then email contact@osf.io with the subject line "Claiming Error" to report the problem.

Sincerely,

Open Science Framework Robot

Want more information? Visit http://osf.io/ to learn about the Open Science Framework, or http://cos.io/ for information about its supporting organization, the Center for Open Science. Questions? Email contact@osf.io


## -*- coding: utf-8 -*-

## OpenFisca -- A versatile microsimulation software
## By: OpenFisca Team <contact@openfisca.fr>
##
## Copyright (C) 2011, 2012, 2013, 2014 OpenFisca Team
## https://github.com/openfisca
##
## This file is part of OpenFisca.
##
## OpenFisca is free software; you can redistribute it and/or modify
## it under the terms of the GNU Affero General Public License as
## published by the Free Software Foundation, either version 3 of the
## License, or (at your option) any later version.
##
## OpenFisca is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Affero General Public License for more details.
##
## You should have received a copy of the GNU Affero General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.

<%inherit file="site.mako"/>

<%def name="container_content()" filter="trim">

</%def>

Add rows to split form and graph.


"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
branch_labels = ${repr(branch_labels)}
depends_on = ${repr(depends_on)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
${upgrades if upgrades else "pass"}

def downgrade():
${downgrades if downgrades else "pass"}

Add spaces to skeleton alembic upgrade/downgrade pass

"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
branch_labels = ${repr(branch_labels)}
depends_on = ${repr(depends_on)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
${upgrades if upgrades else "    pass"}

def downgrade():
${downgrades if downgrades else "    pass"}


Hello ${referrer.fullname},

You recently added ${fullname} to "${node.title}". ${fullname} wants to claim their account, but the email address they provided is different from the one you provided.  To maintain security of your project, we are sending the account confirmation to you first.

IMPORTANT: To ensure that the correct person is added to your project please forward the message below to ${fullname}.

After ${fullname} confirms their account, they will be able to contribute to the project.

----------------------

Hello ${fullname},

You have been added by ${referrer.fullname} as a contributor to the project "${node.title}" on the Open Science Framework. To set a password for your account, visit:

${claim_url}

Once you have set a password, you will be able to make contributions to ${node.title}.

Sincerely,

The OSF Team

Want more information? Visit http://osf.io/ or http://cos.io/ for information about the Open Science Framework and its supporting organization, the Center for Open Science. Questions? Email contact@osf.io.

Add link to user settings for notification defaults to forward invite

<%!
    from website import settings
%>

Hello ${referrer.fullname},

You recently added ${fullname} to "${node.title}". ${fullname} wants to claim their account, but the email address they provided is different from the one you provided.  To maintain security of your project, we are sending the account confirmation to you first.

IMPORTANT: To ensure that the correct person is added to your project please forward the message below to ${fullname}.

After ${fullname} confirms their account, they will be able to contribute to the project.

----------------------

Hello ${fullname},

You have been added by ${referrer.fullname} as a contributor to the project "${node.title}" on the Open Science Framework. To set a password for your account, visit:

${claim_url}

Once you have set a password, you will be able to make contributions to ${node.title}. You will automatically be subscribed to notifications when a comment is added or a file is changed on this project. To change your email notification preferences once you've created your account, visit your project or your user settings: ${settings.DOMAIN + "settings/notifications/"}

Sincerely,

The OSF Team

Want more information? Visit http://osf.io/ or http://cos.io/ for information about the Open Science Framework and its supporting organization, the Center for Open Science. Questions? Email contact@osf.io.


# Plugin name
name: ${plugin_name}
# Human-readable name for your plugin
title: Title for ${plugin_name} plugin
# Plugin version
version: '1.0.0'
# Description
description: Please describe your plugin here
# Required fuel version
fuel_version: ['8.0']
# Specify license of your plugin
licenses: ['Apache License Version 2.0']
# Specify author or company name
authors: ['Specify author or company name']
# A link to the plugin's page
homepage: 'https://github.com/openstack/fuel-plugins'
# Specify a group which your plugin implements, possible options:
# network, storage, storage::cinder, storage::glance, hypervisor,
# equipment
groups: []
# Change `false` to `true` if the plugin can be installed in the environment
# after the deployment.
is_hotpluggable: false

# The plugin is compatible with releases in the list
releases:
  - os: ubuntu
    version: liberty-8.0
    mode: ['ha']
    deployment_scripts_path: deployment_scripts/
    repository_path: repositories/ubuntu

# Version of plugin package
package_version: '4.0.0'

Support of mitaka-9.0 added to plugins V4

# Plugin name
name: ${plugin_name}
# Human-readable name for your plugin
title: Title for ${plugin_name} plugin
# Plugin version
version: '1.0.0'
# Description
description: Please describe your plugin here
# Required fuel version
fuel_version: ['8.0']
# Specify license of your plugin
licenses: ['Apache License Version 2.0']
# Specify author or company name
authors: ['Specify author or company name']
# A link to the plugin's page
homepage: 'https://github.com/openstack/fuel-plugins'
# Specify a group which your plugin implements, possible options:
# network, storage, storage::cinder, storage::glance, hypervisor,
# equipment
groups: []
# Change `false` to `true` if the plugin can be installed in the environment
# after the deployment.
is_hotpluggable: false

# The plugin is compatible with releases in the list
releases:
  - os: ubuntu
    version: mitaka-9.0
    mode: ['ha']
    deployment_scripts_path: deployment_scripts/
    repository_path: repositories/ubuntu

# Version of plugin package
package_version: '4.0.0'


## -*- coding: utf-8 -*-
<%inherit file="notify_base.mako"/>
<%def name="content()">

        Dear ${fullname},

        You have an unsubmitted preregistration on the Open Science Framework that could be eligible for a $1,000 prize as part of the Prereg Challenge. If you would like this to be considered for a prize, please complete your preregistration and submit it for review, available on the last page of the preregistration form. This review process is required for a prize and simply checks to make sure the preregistration includes a complete analysis plan.
        If you have questions about a particular field in the preregistration, you may review the FAQ on the website, email us with a question, or use our free statistical consulting services.
        Thank you for using the OSF!

        Sincerely,

        The team at the Center for Open Science

</%def>

Remove link to prereg challenge


<%page args="gallery" />

% for idx, image in enumerate(gallery['images']):
    ${'
' if idx % 3 == 0 else '' | n}

    ${'
' if idx % 3 == 2 else '' | n}
% endfor

Support image variations from Kimochi for 1:1 images

<%page args="gallery" />

% for idx, image in enumerate(gallery['images']):
    ${'
' if idx % 3 == 0 else '' | n}

            % if '1:1' in image['variations']:

            % else:

            % endif

    ${'
' if idx % 3 == 2 else '' | n}
% endfor


<%inherit file="site_page_base.mako" />

Display a 1-2-3 stage tutorial for creating the first page here.

Use a separate layout for the page list

<%inherit file="site_base.mako" />

    Add new page

<form method="post" action="${request.route_url('site_pages', site_key=site.key)}">
    <input type="hidden" name="csrf_token" value="${request.session.get_csrf_token()}" />

    <input type="text" name="page_name" placeholder="Page name" />
    <input type="submit" value="Add" />
</form>

Existing pages

        Name

    % for page in site.pages:

                ${page.name}

    % endfor

Display a 1-2-3 stage tutorial for creating the first page here.


<% from website.models import User %>

            ${commenter.fullname}
             replied to your comment "${parent_comment}" on your ${nodeType}
             at ${localized_timestamp}:
            "${content}"

            ❯

Remove "on your {nodeType}" from comment replies

<% from website.models import User %>

            ${commenter.fullname}
             replied to your comment "${parent_comment}"
             at ${localized_timestamp}:
            "${content}"

            ❯


<%page args="section" />

% for idx, image in enumerate(section['gallery']['images']):
    ${'
' if idx % 3 == 0 else '' | n}

    ${'
' if idx % 3 == 2 else '' | n}
% endfor

Move actual gallery display into its own file

<%page args="section" />

<%include file="block_gallery.mako" args="gallery=section['gallery']" />


# +---------------------------+
# |Cognitive Cryptography  VPN|
# |  http://vpn.ccrypto.org/  |
# +---------------------------+
# ${username}${'/'+profile.name if profile else ' (default profile)'}

verb 4
client
tls-client
remote-cert-tls server
dev tun0
tun-ipv6

auth-user-pass
# you can use this and put username/password, one per line, in a file
# auth-user-pass cred.txt

% if force_tcp:
remote ${gateway} 443 tcp
% else:
<connection>
remote ${gateway} 1194 udp
remote ${gateway} 443 tcp
</connection>
% endif

resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
dhcp-option DNS 10.99.0.20

# Change default routes
redirect-gateway def1
route-ipv6 2000::/3

% if windows_dns:
# Force Windows to apply new DNS settings
#register-dns
% endif

% if resolvconf:
# Update DNS with resolvconf
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
% endif

<ca>
${openvpn_ca}</ca>

Add openvpn option (better load balancing)

# +---------------------------+
# |Cognitive Cryptography  VPN|
# |  http://vpn.ccrypto.org/  |
# +---------------------------+
# ${username}${'/'+profile.name if profile else ' (default profile)'}

verb 4
client
tls-client
remote-cert-tls server
dev tun0
tun-ipv6

auth-user-pass
# you can use this and put username/password, one per line, in a file
# auth-user-pass cred.txt

remote-random-hostname

% if force_tcp:
remote ${gateway} 443 tcp
% else:
<connection>
remote ${gateway} 1194 udp
remote ${gateway} 443 tcp
</connection>
% endif

resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
dhcp-option DNS 10.99.0.20

# Change default routes
redirect-gateway def1
route-ipv6 2000::/3

% if windows_dns:
# Force Windows to apply new DNS settings
#register-dns
% endif

% if resolvconf:
# Update DNS with resolvconf
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
% endif

<ca>
${openvpn_ca}</ca>


    <%include file="dataverse_credentials_modal.mako"/>
    Connect an account

{{ properName }}

                Authorized on {{ dataverseHost }}
                Delete Access Token

                    {{ title }}
                    Private project

Add hover to dataverse table


        figshare

            % if authorized:
                    authorized by  ${name}
                Disconnect Account
            % else:

                Connect Account

            % endif

<%include file="profile/addon_permissions.mako" />

Remove link to OSF profile from figshare user name


Change Avatar

Avatars on the OSF use
                    gravatar.org, a free
                    service that allows users to easily control their identity
                    and profile on multiple service across the Internet.

To change your avatar image, please login or register at
                   gravatar.org, and add the
                   email address you use on the OSF to your account there.

                <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>

Update text in Gravatar modal

Change Avatar

Avatars on the OSF use
                    gravatar.org, a free
                    service that allows users to easily control their identity
                    and profile on multiple service across the Internet.

To change your avatar image, please login or register at
                   gravatar.org, and add the
                   email address you use on the OSF to your Gravatar account.

                <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>


<%page expression_filter="h"/>

            % if user['can_edit']:

                % if wiki_id and wiki_name != 'home':

                % endif
            % endif

Fix tooltip for collapsed menu


Hello ${user.fullname},

Thank you for registering for an account on the Open Science Framework.

Please verify your email address by visiting this link:

${confirmation_url}

The OSF Team
Center for Open Science

Add extra space in order to render a proper newline


<%inherit file="notify_base.mako" />

<%def name="content()">

Registration of ${src.title} finished

    <% from website import settings %>
    The registration of ${src.title} just finished! You can view the registration here.

</%def>

Fix email language to remove redundancy

<%inherit file="notify_base.mako" />

<%def name="content()">

Registration of ${src.title} finished

    <% from website import settings %>
    You can view the registration here.

</%def>


# -*- coding: utf-8 -*-
<%inherit file="layout.mako" />

${title}

        %if message:

${message}

        %endif

        %if s3_url:

The resource at <tt>${s3url}</tt> was not available. (${status_code})

        %else:

Status: ${status_code}

        %endif

Home — Refresh

Refresh uses full url instead of path


<%inherit file="project/project_base.mako"/>
<%def name="title()">Register Component</%def>

<legend class="text-center">Register</legend>

% if schema:
    <%include file="metadata/register_${str(metadata_version)}.mako" />
% else:

    <form role="form">

${language.REGISTRATION_INFO}

        <select class="form-control" id="select-registration-template">
            <option value="">Please select a registration form to initiate registration</option>
            % for option in options:
                <option value="${option['template_name']}">${option['template_name_clean']}</option>
            % endfor
        </select>
    </form>

% endif

<%def name="javascript_bottom()">
    ${parent.javascript_bottom()}
    % if schema:

    % endif
</%def>

Change page title from Register Component to Register node.title

<%inherit file="project/project_base.mako"/>
<%def name="title()">Register ${node['title']}</%def>

<legend class="text-center">Register</legend>

% if schema:
    <%include file="metadata/register_${str(metadata_version)}.mako" />
% else:

    <form role="form">

${language.REGISTRATION_INFO}

        <select class="form-control" id="select-registration-template">
            <option value="">Please select a registration form to initiate registration</option>
            % for option in options:
                <option value="${option['template_name']}">${option['template_name_clean']}</option>
            % endfor
        </select>
    </form>

% endif

<%def name="javascript_bottom()">
    ${parent.javascript_bottom()}
    % if schema:

    % endif
</%def>


<video controls height="100%">
  <source src="${url}">
  Your browser does not support the video tag.
</video>

<script src="/static/js/mfr.js"></script>
<script src="/static/js/mfr.child.js"></script>
<script>
    window.pymChild.sendMessage('embed', 'embed-responsive-16by9');
</script>

Fix the scrollbar flickering issue for video

<style>
    ## Setting margin and padding to 0 for body fixes the scrollbar flickering issue
    body {
        margin: 0;
        padding: 0;
    }
</style>

<video controls height="100%">
  <source src="${url}">
  Your browser does not support the video tag.
</video>

<script src="/static/js/mfr.js"></script>
<script src="/static/js/mfr.child.js"></script>
<script>
    window.pymChild.sendMessage('embed', 'embed-responsive-16by9');
</script>


<%inherit file="notify_base.mako" />

<%def name="content()">

Issue registering ${src.title}

    We cannot archive ${src.title} at this time because there were errors copying files from some of the linked third-party services. Our development team is investigating this failure. We're sorry for any inconvienence this may have caused.

</%def>

Update language in uncaught error mail

<%inherit file="notify_base.mako" />

<%def name="content()">

Issue registering ${src.title}

    We cannot archive ${src.title} at this time because there were errors copying files to the registration. Our development team is investigating this failure. We're sorry for any inconvienence this may have caused.

</%def>


server {
	listen ${settings['nginx.port']};
	server_name ${instance.domain} ${" ".join([a.domain for a in instance.aliases])};
	error_log ${instance.paths.logs.nginx} info;
	set $themes ${instance.environment.paths.themes};
	set $instance ${instance.paths.instance_dir};
<%
    chain = list(instance.themes_chain)
    num_themes = len(chain)
%>
	location /static {
		root $instance;
		% if instance.theme:
		try_files $uri @${instance.theme.name};
		% else:
		try_files $uri =404;
		% endif
		expires max;
	}

	% for i, theme in enumerate(chain):
	location @${theme.name} {
		root $themes/${theme.name};
	% if i != num_themes - 1:
		try_files $uri @${chain[i+1].name};
	% else:
		try_files $uri =404;
	% endif
		expires max;
	}

	% endfor
	location / {
		include /etc/nginx/uwsgi_params;
		uwsgi_param UWSGI_FASTROUTER_KEY $host;
		uwsgi_pass ${instance.environment.uwsgi_config.fastrouter.address}:${instance.environment.uwsgi_config.fastrouter.port};
	}
}

Disable access logging in nginx vhost

server {
	listen ${settings['nginx.port']};
	server_name ${instance.domain} ${" ".join([a.domain for a in instance.aliases])};
	access_log off;
	error_log ${instance.paths.logs.nginx} info;
	set $themes ${instance.environment.paths.themes};
	set $instance ${instance.paths.instance_dir};
<%
    chain = list(instance.themes_chain)
    num_themes = len(chain)
%>
	location /static {
		root $instance;
		% if instance.theme:
		try_files $uri @${instance.theme.name};
		% else:
		try_files $uri =404;
		% endif
		expires max;
	}

	% for i, theme in enumerate(chain):
	location @${theme.name} {
		root $themes/${theme.name};
	% if i != num_themes - 1:
		try_files $uri @${chain[i+1].name};
	% else:
		try_files $uri =404;
	% endif
		expires max;
	}

	% endfor
	location / {
		include /etc/nginx/uwsgi_params;
		uwsgi_param UWSGI_FASTROUTER_KEY $host;
		uwsgi_pass ${instance.environment.uwsgi_config.fastrouter.address}:${instance.environment.uwsgi_config.fastrouter.port};
	}
}


"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}

Update the alembic generator template to be PEP friendly

"""

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}

"""
from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}


<%! from spline import i18n %>

    ${_('Rendered in %s seconds') % h.timedelta_seconds(c.timer.total_time)}

    ${_(
            '{queries} SQL {q} in {time:.02f} seconds',
            '{queries} SQL {q} in {time:.02f} seconds',
            n=c.timer.sql_queries
        ).format(
            queries=c.timer.sql_queries,
            time=h.timedelta_seconds(c.timer.sql_time),
            q=_('query', 'queries', n=c.timer.sql_queries),
        )}

 ${_('Powered by Spline')}

 ${h.literal(_('Fugue icon set by Yusuke Kamiyamane; country flags by famfamfam'))}

Handle plurals properly in the footer

<%! from spline import i18n %>

    ${_('Rendered in %s seconds') % h.timedelta_seconds(c.timer.total_time)}

    ${_(
            '{queries} SQL query in {time:.02f} seconds',
            '{queries} SQL queries in {time:.02f} seconds',
            n=c.timer.sql_queries
        ).format(
            queries=c.timer.sql_queries,
            time=h.timedelta_seconds(c.timer.sql_time),
        )}

 ${_('Powered by Spline')}

 ${h.literal(_('Fugue icon set by Yusuke Kamiyamane; country flags by famfamfam'))}


    % for each in nodes:

    % endfor

% if sortable and user['can_edit']:

% endif

Fix log display on registrations page (node lists)

    % for each in nodes:

    % endfor
## TODO: make sure these templates are only included once on a page.
<%include file="log_templates.mako"/>

% if sortable and user['can_edit']:

% endif


<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Forks</%def>

Forks

	    % if node['fork_count']:

	    % else:

There have been no forks of this project.

	    % endif

Add more detail into empty fork page

<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Forks</%def>

Forks

	    % if node['fork_count']:

	    % else:

There have been no forks of this project.

Forking a project means you have created a copy of it into your dashboard, and can change that copy for your own purposes. You will be the only contributor to the forked project until you add others.

                 Learn more about Forks

	    % endif


<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Wiki (History)</%def>

            <%include file="wiki/templates/nav.mako"/>
            <%include file="wiki/templates/toc.mako"/>

            <%include file="wiki/templates/status.mako/"/>

            ${wiki_content}

            <%include file="wiki/templates/history.mako" />

Remove trailing slash from path in mako "include"

<%inherit file="project/project_base.mako"/>
<%def name="title()">${node['title']} Wiki (History)</%def>

            <%include file="wiki/templates/nav.mako"/>
            <%include file="wiki/templates/toc.mako"/>

            <%include file="wiki/templates/status.mako"/>

            ${wiki_content}

            <%include file="wiki/templates/history.mako" />


clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - cinder

Add EDP services to new HDP plugin

clusters:
  - plugin_name: ambari
    plugin_version: '2.3'
    image: ${ambari_2_1_image}
    node_group_templates:
      - name: master
        flavor: ${medium_flavor_id}
        node_processes:
          - Ambari
          - MapReduce History Server
          - NameNode
          - ResourceManager
          - SecondaryNameNode
          - YARN Timeline Server
          - ZooKeeper
        auto_security_group: true
      - name: master-edp
        flavor: ${ci_flavor_id}
        node_processes:
          - Hive Metastore
          - HiveServer
          - Oozie
        auto_security_group: true
      - name: worker
        flavor: ${ci_flavor_id}
        node_processes:
          - DataNode
          - NodeManager
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
    cluster_template:
      name: ambari21
      node_group_templates:
        master: 1
        master-edp: 1
        worker: 3
      cluster_configs:
        HDFS:
          dfs.datanode.du.reserved: 0
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow: hadoop_2


<%inherit file="base.mako"/>
<%def name="title()">Home</%def>
<%def name="content()">

My Projects

</%def>

Remove earlier formatting of QuickSearchProject container


# Cognitive Cryptography VPN
# ${username}${'/'+profile.name if profile else ' (default profile)'}

verb 3
client
tls-client
dev tun0
tun-ipv6

auth-user-pass
# you can use this and put username/password, one per line, in a file
# auth-user-pass cred.txt

% if android:
    # de.blinkt.openvpn does not support <connection>
    remote ${remotes[0]} 443 tcp
% else:
    % for remote in remotes:
    remote ${remote} 1194 udp
    remote ${remote} 443 tcp
    % endfor
% endif

resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
redirect-gateway def1

<ca>
${ca_content}</ca>

Remove spaces in config. Network-manager, fuck you.


<%page args="section" />

☰

            ${section.type}

    <%include file="${section.type}.mako" args="section=section" />

Add placeholder caret for options pane

<%page args="section" />

☰

            ${section.type}

            Options

    <%include file="${section.type}.mako" args="section=section" />


Hello ${user.fullname},

Welcome to the Open Science Framework. To get started, please verify your email address by visiting this link:

${confirmation_url}

From the OSF Robots

Update confirm new email text to be a bit nicer

Hello ${user.fullname},

This email address was added to an account on the Open Science Framework.

Please verify your email address by visiting this link:

${confirmation_url}

The OSF Team
Center for Open Science


## Open Chord Charts -- Database of free chord charts
## By: Christophe Benz <christophe.benz@gmail.com>
##
## Copyright (C) 2012 Christophe Benz
## https://gitorious.org/open-chord-charts/
##
## This file is part of Open Chord Charts.
##
## Open Chord Charts is free software; you can redistribute it and/or modify
## it under the terms of the GNU Affero General Public License as
## published by the Free Software Foundation, either version 3 of the
## License, or (at your option) any later version.
##
## Open Chord Charts is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Affero General Public License for more details.
##
## You should have received a copy of the GNU Affero General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.

<%inherit file="site.mako"/>

This is the Open Chord Charts project. The aim is to collect chord charts under a free data licence.

Learn more »

Add "View charts" button to home page.

## Open Chord Charts -- Database of free chord charts
## By: Christophe Benz <christophe.benz@gmail.com>
##
## Copyright (C) 2012 Christophe Benz
## https://gitorious.org/open-chord-charts/
##
## This file is part of Open Chord Charts.
##
## Open Chord Charts is free software; you can redistribute it and/or modify
## it under the terms of the GNU Affero General Public License as
## published by the Free Software Foundation, either version 3 of the
## License, or (at your option) any later version.
##
## Open Chord Charts is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Affero General Public License for more details.
##
## You should have received a copy of the GNU Affero General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.

<%inherit file="site.mako"/>

This is the Open Chord Charts project. The aim is to collect chord charts under a free data licence.

    Learn more »
    View charts »


    Google Drive

            authorized
            by {{ username }}

               Disconnect Acount

            Connect Account

<%include file="profile/addon_permissions.mako" />

Fix typo in googledrive "Disconnect Account"

    Google Drive

            authorized
            by {{ username }}

               Disconnect Account

            Connect Account

<%include file="profile/addon_permissions.mako" />


"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}

Add license header to migrations template

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
    ${upgrades if upgrades else "pass"}

def downgrade():
    ${downgrades if downgrades else "pass"}


                ${commenter}
                 commented on your ${nodeType}
                 "${title}"
                 at 1:40PM on Saturday, June 12
                 "${content}"

To view this on the Open Science Framework, please visit: ${url}

Add margin to tables for stacking


<%!
    # Ref https://github.com/pdoc3/pdoc/blob/master/pdoc/templates/config.mako

    git_link_template = 'https://github.com/nansencenter/DAPPER/blob/{commit}/{path}#L{start_line}-L{end_line}'
    sort_identifiers = False
    # show_type_annotations = True
    # show_source_code = False
    latex_math = True
%>

Add search box to docs

<%!
    # Ref https://github.com/pdoc3/pdoc/blob/master/pdoc/templates/config.mako

    git_link_template = 'https://github.com/nansencenter/DAPPER/blob/{commit}/{path}#L{start_line}-L{end_line}'
    sort_identifiers = False
    # show_type_annotations = True
    # show_source_code = False
    latex_math = True
    search_query = 'inurl:github.com/nansencenter/DAPPER  site:DAPPER.github.io'
%>


PLACEHOLDER TEMPLATE FOR PREREG CHALLENGE

-------

Hello ${user.fullname},

Welcome to the Open Science Framework. To get started, please verify your email address by visiting this link:

${confirmation_url}

From the OSF Robots

Add proper template - may need to be revised

PLACEHOLDER TEMPLATE FOR PREREG CHALLENGE

-------

Hello ${user.fullname},

Welcome to the Open Science Framework. You have initiated a Preregistration as part of the Preregistration Challenge to win $1,000.
To get started, please verify your email address by visiting this link:

${confirmation_url}

From the team at the Center for Open Science


${str(o.outcome)}

%if o.rich_data:

%for field, contents in sorted(o.rich_data.items()):

${field}

${contents}

%endfor

%endif

Fix the HTML in the controlfields plugin template


<%def name="kind()">
    preregistration
</%def>

<%def name="challenge_word()">challenge</%def>

<%def name="description()">

The process of ${kind()} your plans is beneficial to both the scientific field and to you, the scientist. By writing out detailed data collection methods, analysis plans, and rules for excluding or missing data, you can make important decisions that affect your workflow earlier, without the biases that occur once the data are in front of you.

</%def>

<%def name="steps()">

Specify all your study and analysis decisions prior to investigating your data

Publish your study in an eligible journal

Receive $1,000

</%def>

Fix typo in prereg description

<%def name="kind()">
    preregistration
</%def>

<%def name="challenge_word()">challenge</%def>

<%def name="description()">

The process of creating a ${kind()} your plans is beneficial to both the scientific field and to you, the scientist. By writing out detailed data collection methods, analysis plans, and rules for excluding or missing data, you can make important decisions that affect your workflow earlier, without the biases that occur once the data are in front of you.

</%def>

<%def name="steps()">

Specify all your study and analysis decisions prior to investigating your data

Publish your study in an eligible journal

Receive $1,000

</%def>


    <%
      cookies = request.cookies
      prefered_editor = cookies['prefered_editor'] if 'prefered_editor' in cookies else ''
    %>
    <button id="edit" class="btn btn-default btn-sm">
       ${_('Edit with')}

    </button>
    <button data-toggle="dropdown" class="btn btn-default btn-sm dropdown-toggle">
    </button>

JOSM

iD editor

Potlatch 2

Walking Papers

  <button class="btn btn-sm btn-link">.osm</button>

Remove .osm link. Not implemented yet


<%inherit file="project/addon/widget.mako" />

            This project contains a forward to
            {{ url }}.

You will be automatically forwarded in {{ timeLeft }} seconds.

            Redirect
            Cancel

            This project contains a forward to
            {{ linkDisplay }}.

            Redirect

Change button position and color for link redirect

<%inherit file="project/addon/widget.mako" />

            This project contains a forward to
            {{ url }}.

You will be automatically forwarded in {{ timeLeft }} seconds.

            Cancel
            Redirect

            This project contains a forward to
            {{ linkDisplay }}.

            Redirect


CREATE DATABASE IF NOT EXISTS hue;
GRANT USAGE ON *.* TO 'hue'@'localhost' IDENTIFIED BY '${hue_db_pwd}';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'localhost';

Drop HUE DB at deployment

DROP DATABASE hue;
CREATE DATABASE hue;
GRANT USAGE ON *.* TO 'hue'@'localhost' IDENTIFIED BY '${hue_db_pwd}';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'localhost';


<%inherit file="notify_base.mako" />

<%def name="content()">
<% from website import settings %>

        An error has occurred, and the fork of ${title} on The Open Science Framework was not successfully created. Please log in and try this action again. If the problem persists, please email support@osf.io.

    You can view the project here.

</%def>

Change the fork failed email to use raw link instead of text.

<%inherit file="notify_base.mako" />

<%def name="content()">
<% from website import settings %>

        An error has occurred, and the fork of ${title} on The Open Science Framework was not successfully created. Please log in and try this action again. If the problem persists, please email support@osf.io.

    You can view the project here: ${settings.DOMAIN + guid}

</%def>


Remove _blank in logs for change forward link


Hello ${user.fullname},

${referrer_name + ' has added you' if referrer_name else 'You have been added'} as a contributor to the project "${node.title}" on the Open Science Framework: ${node.absolute_url}

If you are erroneously being associated with "${node.title}," then you may visit the project's "Contributors" page and remove yourself as a contributor.

Sincerely,

Open Science Framework Robot

Want more information? Visit http://osf.io/ to learn about the Open Science Framework, or http://cos.io/ for information about its supporting organization, the Center for Open Science.

Questions? Email contact@osf.io

Update contributor added email to include project settings for unsubscribe

<%!
    from website import settings
%>

Hello ${user.fullname},

${referrer_name + ' has added you' if referrer_name else 'You have been added'} as a contributor to the project "${node.title}" on the Open Science Framework: ${node.absolute_url}

You will automatically be subscribed to notification emails for comments and updated files for this project. To change your email notification preferences, visit your project or your user settings: ${settings.DOMAIN + "settings/notifications/"}

If you are erroneously being associated with "${node.title}," then you may visit the project's "Contributors" page and remove yourself as a contributor.

Sincerely,

Open Science Framework Robot

Want more information? Visit http://osf.io/ to learn about the Open Science Framework, or http://cos.io/ for information about its supporting organization, the Center for Open Science.

Questions? Email contact@osf.io


<%inherit file="../project_base.mako"/>
<%def name="title()">${file_name}</%def>

            ${file_name | h}
            % if file_revision:
                 ${file_revision | h}
            % endif

        ${self.file_contents()}

        ${self.file_versions()}

<%def name="file_contents()">

        % if rendered is not None:
            ${rendered}
        % else:

        % endif

</%def>

<%def name="file_versions()"></%def>

<%def name="javascript_bottom()">
    ${parent.javascript_bottom()}
    % if rendered is None:

    % endif
</%def>

Fix excess spacing in file view mako around the header


<link href="${STATIC_PATH}/ipynb/css/pygments.css" rel="stylesheet">
<link href="${STATIC_PATH}/ipynb/css/style.min.css" rel="stylesheet">
<link href="${STATIC_PATH}/ipynb/css/theme/cdp_1.css" rel="stylesheet">

<style type="text/css">
    .imgwrap {
        text-align: center;
    }
    .input_area {
        padding: 0.4em;
    }
    div.input_area > div.highlight > pre {
        margin: 0px;
        padding: 0px;
        border: none;
    }
</style>

${ body | n }

<script type="text/javascript">
    (function() {
    if (window.MathJax) {
        // MathJax loaded
        MathJax.Hub.Config({
            tex2jax: {
                inlineMath: [ ['$','$'], ["\\(","\\)"] ],
                displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
            },
            displayAlign: 'left', // Change this to 'center' to center equations.
            "HTML-CSS": {
                styles: {'.MathJax_Display': {"margin": 0}}
            }
        });
        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
    }
})();
</script>

<script src="${STATIC_PATH}/ipynb/js/mathjax.js"type="text/javascript"></script>

Fix SSL error on rendering IPython notebooks

<link href="${STATIC_PATH}/ipynb/css/pygments.css" rel="stylesheet">
<link href="${STATIC_PATH}/ipynb/css/style.min.css" rel="stylesheet">
<link href="${STATIC_PATH}/ipynb/css/theme/cdp_1.css" rel="stylesheet">

<style type="text/css">
    .imgwrap {
        text-align: center;
    }
    .input_area {
        padding: 0.4em;
    }
    div.input_area > div.highlight > pre {
        margin: 0px;
        padding: 0px;
        border: none;
    }
</style>

${ body | n }

<script type="text/javascript">
    (function() {
    if (window.MathJax) {
        // MathJax loaded
        MathJax.Hub.Config({
            tex2jax: {
                inlineMath: [ ['$','$'], ["\\(","\\)"] ],
                displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
            },
            displayAlign: 'left', // Change this to 'center' to center equations.
            "HTML-CSS": {
                styles: {'.MathJax_Display': {"margin": 0}}
            }
        });
        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
    }
})();
</script>

## Use secure MathJax CDN to avoid SSL errors
<script type="text/javascript" src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js"></script>


<%inherit file="site.mako" />

My Sites

% if sites:

You have the following sites:

    % for site in sites:

${site.title}

Entries:

        % for entry in site.entries.limit(2):

${entry.title}

        % endfor

Domains:

        % for domain in site.domains:

${domain.domain}

        % endfor

    % endfor

% else:

You don't have any sites

% endif

<%block name="title">Home - ${parent.title()}</%block>

Add id= where it was missing


        GitHub

            % if authorized:
                    authorized by

                        ${authorized_github_user}

                Disconnect Account
            % else:

                    Connect Account

            % endif

<%def name="submit_btn()"></%def>
<%def name="on_submit()"></%def>

<%include file="profile/addon_permissions.mako" />

Remove link to users github profile


## -*- coding: utf-8 -*-
## Licensed to Cloudera, Inc. under one
## or more contributor license agreements.  See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership.  Cloudera, Inc. licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License.  You may obtain a copy of the License at
##
##     http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.

<%namespace name="common" file="workflow-common.xml.mako" />

    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${'${'}jobTracker}</job-tracker>
            <name-node>${'${'}nameNode}</name-node>

            ${ common.prepares(node['properties']['prepares']) }
            % if node['properties']['job_xml']:
              <job-xml>${ node['properties']['job_xml'] }</job-xml>
            % endif
            ${ common.configuration(node['properties']['job_properties']) }

            <master>${ node['properties']['spark_master'] }</master>
            <mode>${ node['properties']['mode'] }</mode>
            <name>${ node['properties']['app_name'] }</name>

            % if node['properties']['class']:
              <class>${ node['properties']['class'] }</class>
            % endif

            <jar>${ node['properties']['jars'] }</jar>

            % if node['properties']['spark_opts']:
              <spark-opts>${ node['properties']['spark_opts'] }</spark-opts>
            % endif

            % for argument in node['properties']['spark_arguments']:
              <arg>${ argument['value'] }</arg>
            % endfor
        </spark>
        <ok to="${ node_mapping[node['children'][0]['to']].name }"/>
        <error to="${ node_mapping[node['children'][1]['error']].name }"/>
        ${ common.sla(node) }
    </action>


Hello OSF Support,

There has been some trouble in registering a DOI or updating the metadata for the preprint ${preprint.absolute_url} with CrossRef.

preprint guid: ${preprint._id}
doi: ${doi}

Here is the original content of the error message:

...

${email_content}

...

Sincerely,

Open Science Framework Robot

Improve crossref error message formatting


Make it so changing the password will clear sessions and send email

DRAFT EMAIL MESSAGE - Do not go to production with this.

Your password has been reset. If you did not reset your password, go to the Open Science Framework
at https://osf.io/ and reset your password.


Fix for problematic Atom listing of contributors.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>${ctx}</title>
    <link href="${request.url}"/>
    <updated>${h.datetime.datetime.now().isoformat()}</updated>
    <author>${request.dataset.name}</author>
    <id>${request.url}</id>
    <!-- Not available. -->
</feed>


Add modal for credential submission -TODO: make pretty

Connect an Amazon S3 Account

            <form>

                            Access Key
                            <input class="form-control" data-bind="value: accessKey" id="access_key" name="access_key" ${'disabled' if disabled else ''} />

                            Secret Key
                            <input type="password" class="form-control" data-bind="value: secretKey" id="secret_key" name="secret_key" ${'disabled' if disabled else ''} />

                    Cancel

                    <button data-bind="click: sendAuth" class="btn btn-success">Save</button>

            </form>


                ${commenter}
                 commented on your ${nodeType}
                 "${title}"
                 at 1:40PM on Saturday, June 12
                 "${content}"

To view this on the Open Science Framework, please visit: ${url}


clusters:
  - plugin_name: mapr
    plugin_version: 5.0.0.mrv2
    image: ${mapr_500mrv2_image}
    node_group_templates:
      - name: master
        flavor:
          vcpus: 4
          ram: 8192
          root_disk: 80
          ephemeral_disk: 40
        node_processes:
          - Metrics
          - Webserver
          - ZooKeeper
          - HTTPFS
          - Oozie
          - FileServer
          - CLDB
          - Flume
          - Hue
          - NodeManager
          - HistoryServer
          - ResourceManager
          - HiveServer2
          - HiveMetastore
          - Sqoop2-Client
          - Sqoop2-Server
        auto_security_group: true
      - name: worker
        flavor:
          vcpus: 2
          ram: 4096
          root_disk: 40
          ephemeral_disk: 40
        node_processes:
          - NodeManager
          - FileServer
        auto_security_group: true
    cluster_template:
      name: mapr500mrv2
      node_group_templates:
        master: 1
        worker: 1
    cluster:
      name: ${cluster_name}
    scaling:
      - operation: add
        node_group: worker
        size: 1
    edp_jobs_flow:
      - mapr


<%inherit file="base.mako"/>
<%def name="title()">SHARE Help</%def>
<%def name="content()">

</%def>


clusters:
  - plugin_name: cdh
    plugin_version: 5.4.0
    image: ${cdh_5_4_0_image}
    node_group_templates:
      - name: worker-dn
        flavor: ${ci_flavor_id}
        node_processes:
          - HDFS_DATANODE
          - HDFS_JOURNALNODE
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
        node_configs:
          &ng_configs
          DATANODE:
            dfs_datanode_du_reserved: 0
      - name: worker-nm
        flavor: ${ci_flavor_id}
        node_processes:
          - YARN_NODEMANAGER
          - HDFS_JOURNALNODE
        auto_security_group: true
      - name: worker-nm-dn
        flavor: ${ci_flavor_id}
        node_processes:
          - YARN_NODEMANAGER
          - HDFS_DATANODE
          - HDFS_JOURNALNODE
        volumes_per_node: 2
        volumes_size: 2
        auto_security_group: true
        node_configs:
          *ng_configs
      - name: manager
        flavor: ${large_flavor_id}
        node_processes:
          - CLOUDERA_MANAGER
        auto_security_group: true
      - name: master-core
        flavor: ${medium_flavor_id}
        node_processes:
          - HDFS_NAMENODE
          - YARN_RESOURCEMANAGER
          - ZOOKEEPER_SERVER
        auto_security_group: true
      - name: master-additional
        flavor: ${medium_flavor_id}
        node_processes:
          - OOZIE_SERVER
          - YARN_JOBHISTORY
          - HDFS_SECONDARYNAMENODE
        auto_security_group: true
    cluster_template:
      name: cdh540
      node_group_templates:
        manager: 1
        master-core: 1
        master-additional: 1
        worker-nm-dn: 1
        worker-nm: 1
        worker-dn: 1
      cluster_configs:
        HDFS:
          dfs_replication: 1
    cluster:
      name: ${cluster_name}
    scenario:
      - run_jobs
    edp_jobs_flow:
      - pig_job
      - mapreduce_job
      - mapreduce_streaming_job
      - java_job


## -*- coding: utf-8 -*-

## OpenFisca -- A versatile microsimulation software
## By: OpenFisca Team <contact@openfisca.fr>
##
## Copyright (C) 2011, 2012, 2013, 2014 OpenFisca Team
## https://github.com/openfisca
##
## This file is part of OpenFisca.
##
## OpenFisca is free software; you can redistribute it and/or modify
## it under the terms of the GNU Affero General Public License as
## published by the Free Software Foundation, either version 3 of the
## License, or (at your option) any later version.
##
## OpenFisca is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Affero General Public License for more details.
##
## You should have received a copy of the GNU Affero General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.

<%inherit file="/page.mako"/>

<%def name="h1_content()" filter="trim">
Contribuer à OpenFisca
</%def>

<%def name="page_content()" filter="trim">

Comment contribuer à OpenFisca

            OpenFisca est un projet en cours de développement sous licence GPLv3 ou supérieure. Le code source est librement accessible et modifiable.

            Certains pans de la législation ne sont pas encore intégrés. Étant donné l’ampleur de la tâche, notre ambition est de constituer une communauté de développeurs, d’économistes et de spécialistes de la fiscalité ou des prestations sociales pour maintenir et améliorer le programme.

            Nous invitons les utilisateurs à nous transmettre leur remarques, les imprécisions ou erreurs identifiées, ainsi que les éventuelles propositions d’amélioration. Si vous voulez participer plus activement à l’évolution du programme, vous pouvez télécharger le code source sur GitHub et/ou nous contacter.

</%def>