見出し画像

世田谷区の放課後児童システムの退所時間、退所方法を自動で書き込むBookmarklet

はじめに

@yutakikuchi_です。
新年度の生活が始まり、子供の新しい学校への入学などで、親としてやることが増えて困っている方も多いかと思います。僕の長男も世田谷区内の小学校に入学し、親としても今までになかった勉強支度の準備を手伝ったり、登校を見守ったり、給食がない日はお弁当を作ったりなど、それらの作業を楽しみつつも、いかに一個ずつの作業を効率よく行うかも必要なことだと思います。

世田谷区の放課後児童システム

学校が終わった後に、児童館が管轄している学童に通う方も多いかと思いますが、放課後児童システムというものから毎日何時に子供が帰るか、更には帰る方法として一人で帰るのか、それとも迎えに行くのかを毎日分をプルダウン型の選択から選ばなければならないというシステム(放課後児童システム)があり、こちらも出来る限り効率よく行いたいものそのうちの一つかと思っています。

そこで今回、それらを自動で選択してしまうBookmarkletを作成しました。入力可能なのは1ヶ月先までとなっており、未選択の日付の欄を一つずつの手作業で埋めるのではなく、Bookmarkletの実行とともに一気に埋めてしまいます。本来ならば放課後児童システム側にコピー機能を追加してほしいところですが、対応はしてくれなさそうなので、こちらのほうが早いかと思います。

自動で埋めるBookmarklet

作成したBookmarkletをブラウザにbookmark登録して、放課後児童システムのページにてそのbookmarkを実行するだけで全部埋めてくれます。ソースコードは下のgithubに上げましたが、下記の仕様を持ちます。

  • 退所時間18:00、退所方法を父のお迎えとしている

  • 既に選択されている日付は飛ばして、何もしない

  • 土曜日、日曜日は退所時間、対処方法を選択しない

退所時間、対処方法はご自身のご家庭の都合があると思うので、それに合わせてソースを書き換える形が必要です。もし、ご依頼いただければ、一番最新の選択をコピーしてきて、それを残りの選択肢に自動で埋めることも変更可能ですので、ご希望があればお知らせください。

JavaScriptの元ファイル

javascript:(
    function(){
      set_out_plan('#out_plan_time > option', '18:00');
      set_out_plan('#out_plan_relation_code > option', '01');
      function set_out_plan(node_name, target){
        var selectElements = document.querySelectorAll('.text-left');
        for (var i = 0; i < selectElements.length; i++) {
            if(selectElements[i].className === 'text-left bg-saturday' || selectElements[i].className === 'text-left bg-closed') {
                continue;
            }
            var optionElements = selectElements[i].querySelectorAll(node_name);
            if(optionElements[0].getAttribute('selected') != 'selected') {
                continue;
            }
            optionElements[0].removeAttribute('selected');
            optionElements[0].selected = false;
            for (var j = 0; j < optionElements.length; j++) {
                if (optionElements[j].value === target) {
                    optionElements[j].setAttribute('selected', 'selected');
                    optionElements[j].selected = true;
                    selectElements[i].querySelector('#modify').setAttribute('value', 1);
                }
            }
        }
      }
    }
  )();

Compile済みのJavascript(Bookmark用)

(function(){function e(f,g){for(var c=document.querySelectorAll(".text-left"),b=0;b<c.length;b++)if("text-left bg-saturday"!==c[b].className&&"text-left bg-closed"!==c[b].className){var a=c[b].querySelectorAll(f);if("selected"==a[0].getAttribute("selected")){a[0].removeAttribute("selected");a[0].selected=!1;for(var d=0;d<a.length;d++)a[d].value===g&&(a[d].setAttribute("selected","selected"),a[d].selected=!0,c[b].querySelector("#modify").setAttribute("value",1))}}}e("#out_plan_time > option","18:00"); e("#out_plan_relation_code > option","01")})();

Compileした形でBookmarkには登録する必要があるため、詳しくは下記のURLを参考にしながらBookmarkt登録してみてください。

GithubのURL

githubに登録したソースは下記になります。


この記事が気に入ったらサポートをしてみませんか?