hack のためのネタ帳, etc,,,

以下のコードは、主に Moodle 1.9 を対象としています。

BOOKMARKLET

left-column=500px

左側のメニュー欄を広げる
javascript:(function(w){document.getElementById("left-column").style.width=w;})("500px");

for ScratchPad

週数の設定しないでコースのインポートをする等の失敗をした場合にやり直す方法について、地味に活動とリソースを手作業で消して回る以外の方法を見つけることができなかった。
仕方がないので JavaScript でバッチしたのが以下。
p の Array(4) を変えると、並列度を変更出来るようにしているが、そもそも Moodle が重過ぎるのと、Firefox だと動作がシングルスレッドなので、あまり増やしても意味がない模様。
// delete all activities and resouces
var n = 0;
var progress = 0;
var ndone = 0;
var p = Array(4).join(",").split(",").map(function(e){return new Promise(function(resolve,reject){resolve()});});
var e = document.getElementById("middle-column").getElementsByClassName("editing_delete");
console.log(p);
Array.prototype.reduce.call(e, function(r, e){
  var id = n++;
  r[id % r.length] = r[id % r.length].then(function(){
    return new Promise(function(resolve, reject){
      var c = 0;
      var f = document.createElement("iframe");
      console.log("job: start: " + id);
      f.src = e.href;
      f.onload = function(e) {
        switch (c++) {
        case 0:
          f.contentDocument.forms[0].submit();
          break;
        case 1:
          f.parentNode.removeChild(f);
          resolve();
          ndone++;
          console.log("job: finished: " + id);
          console.log("Total " + n + " jobs, " + ndone + " jobs done, " + (n - ndone) + " jobs remain.");
          break;
        }
      }
      document.body.insertBefore(f, document.body.firstChild);
    });
  });
  return r;
}, p);

課題

グループ提出時のとりまとめ

ZIP で落としてると、
ファイル名が "${GROUPNAME}-${USERNAME}_${USERID}_assignsubmission_file_${FILENAME}" となっており、
グループ内の各ユーザーに重複してファイルが出来る。
グループ毎にファイル名を "${GROUPNAME}_${FILENAME}" として取りまとめるには、変数部分に "-" や "_file_" が含まれないという前提で以下のようにすればよいかな?
for i in *; do echo "$i" "${i%%-*}_${i#*_file_}"; done

関連

タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます