diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/make_css | 22 | ||||
-rw-r--r-- | bin/site-specific-install.sh | 2 | ||||
-rw-r--r-- | bin/update-schema | 1 | ||||
-rwxr-xr-x | bin/zurich/convert_internal_notes_to_comments | 74 |
4 files changed, 83 insertions, 16 deletions
diff --git a/bin/make_css b/bin/make_css index 80fcb462f..c48dda4d6 100755 --- a/bin/make_css +++ b/bin/make_css @@ -13,20 +13,12 @@ DIRECTORY=$(cd `dirname $0`/../web && pwd) -# FixMyStreet uses compass -NEWSTYLE=${1:-`find $DIRECTORY -name "config.rb" -exec dirname {} \;`} -NEWSTYLE_REGEX=$(sed 's/ /\\|/g' <<< $NEWSTYLE) -for site in $NEWSTYLE; do - compass compile --output-style compressed $site -done - -# If given a command line argument, assume was a compass directory and exit -if [ -n "$1" ]; then - exit 0 -fi +DIRS=${1:-`find $DIRECTORY -name "*.scss" -exec dirname {} \; | uniq`} -# The rest are plain sass -for scss in `find $DIRECTORY -name "*.scss" -exec dirname {} \; | uniq | grep -v "\($NEWSTYLE_REGEX\)"` -do - sass --scss --update --style compressed $scss +for dir in $DIRS; do + if [ -e "$dir/config.rb" ]; then + compass compile --output-style compressed $dir + else + sass --scss --update --style compressed $dir + fi done diff --git a/bin/site-specific-install.sh b/bin/site-specific-install.sh index 7b841dd64..d3da12104 100644 --- a/bin/site-specific-install.sh +++ b/bin/site-specific-install.sh @@ -1,7 +1,7 @@ #!/bin/sh # Set this to the version we want to check out -VERSION=v1.2.2 +VERSION=${VERSION_OVERRIDE:-v1.2.4} PARENT_SCRIPT_URL=https://github.com/mysociety/commonlib/blob/master/bin/install-site.sh diff --git a/bin/update-schema b/bin/update-schema index f728f8c56..81c9ff4ab 100644 --- a/bin/update-schema +++ b/bin/update-schema @@ -84,6 +84,7 @@ print "Nothing to do\n" if $nothing; # By querying the database schema, we can see where we're currently at # (assuming schema change files are never half-applied, which should be the case) sub get_db_version { + return '0029' if column_exists('body', 'deleted'); return '0028' if table_exists('body'); return '0027' if column_exists('problem', 'subcategory'); return '0026' if column_exists('open311conf', 'send_extended_statuses'); diff --git a/bin/zurich/convert_internal_notes_to_comments b/bin/zurich/convert_internal_notes_to_comments new file mode 100755 index 000000000..e92be40b3 --- /dev/null +++ b/bin/zurich/convert_internal_notes_to_comments @@ -0,0 +1,74 @@ +#!/usr/bin/env perl + +=head1 DESCRIPTION + +This is a Zurich specific migration script. + +It converts the internal notes that used to be stored on the problem in the +extra hash into comments instead. + + ./bin/zurich/convert_internal_notes_to_comments user_id + +You need to select a user to have the internal notes be associated with, perhaps +the superuser, or one created just for this purpose? + +=cut + +use strict; +use warnings; + +use FixMyStreet::App; + +# Because it is not possible to determine the user that last edited the +# internal_notes we need require a user to assign all the comments to. +my $comment_user_id = $ARGV[0] + || die "Usage: $0 id_of_user_for_comments"; +my $comment_user = FixMyStreet::App # + ->model('DB::User') # + ->find($comment_user_id) + || die "Could not find user with id '$comment_user_id'"; + +# We use now as the time for the internal note. This is not the time it was +# actually created, but I don't think that can be extracted from the problem. +my $comment_timestamp = DateTime->now(); + +# The state of 'hidden' seems most appropriate for these internal_notes - as +# they should not be shown to the public. Certainly more suitable than +# 'unconfirmed' or 'confirmed'. +my $comment_state = 'hidden'; + +# Load all the comments, more reliable than trying to search on the contents of +# the extra field. +my $problems = FixMyStreet::App->model('DB::Problem')->search(); + +while ( my $problem = $problems->next() ) { + + my $problem_id = $problem->id; + + # Extract the bits we are interested in. May not exist, in which case + # skip on. + my $extra = $problem->extra || {}; + next unless exists $extra->{internal_notes}; + + # If there is something to save create a comment with the notes in them + if ( my $internal_notes = $extra->{internal_notes} ) { + print "Creating internal note comment for problem '$problem_id'\n"; + $problem->add_to_comments( + { + text => $internal_notes, + created => $comment_timestamp, + user => $comment_user, + state => $comment_state, + mark_fixed => 0, + problem_state => $problem->state, + anonymous => 1, + extra => { is_internal_note => 1 }, + } + ); + } + + # Remove the notes from extra and save back to the problem + delete $extra->{internal_notes}; + $problem->update({ extra => $extra }); +} + |