研究補助業務出役確認表の一部を自動生成した話

この記事は www.adventar.org の9日目の記事です。

前提知識

RA (リサーチ・アシスタント)制度

リサーチ・アシスタント(以下「RA」という。)の任務は、教員の行う研究に対する研究補助及び大学外の機関等との連 携業務の補助業務とする。
http://web-int.u-aizu.ac.jp/official/students/sad/forms/outline-ra.pdfより引用

簡単に言うと研究の手伝いをすることで大学から給与がもらえる制度。

規則

上の業務を行った後、業務時間を研究補助業務出役確認表に書くことで、その分の給与が与えられる。 ただ、報告書内の規則によると以下のルールに従わないといけない。

簡単に要約すると

- 勤務時間は最大1日8時間以内 かつ 週40時間以内 かつ 月120時間以内 
- もし6時間以上勤務するならば45分以上休憩が必要
- もし8時間以上勤務するならば60分以上休憩が必要
- 22:00~5:00(JST)の勤務はしてはいけない
- 一週間(日本の曜日に従う)のうち最低1日は休日でなければいけない

個人的問題点

docxファイルを渡されるので、いちいちOfficeを開いて編集するか、印刷して書かないといけない。 面倒

アプローチ

  • 研究補助業務出役確認表を会津大学生に親しまれているlatexで書く。
  • latexで書くなら書かせる

進捗

作った。 gist.github.com

使い方

# 第一引数には(勤務時間,休憩時間)のタプルのリストを入れます。当然表の日数と一致してなくてはいけません
times =[
"10:00~19:00","12:00~13:00",
...
],
# 第二引数には月を入れます
month = 12 
# 第三引数には表の最初の日を入れます
start = 1
# 第四引数には表の最後の日を入れます
end = 10
# 第五引数には働いた内容を入れます
content = "ソフトウェア開発"
# 第六引数には書き込むfileを入れます
file = open("form.tex",'a')
generate(times,month,start, end, content, file)

使い方の一例

この使い方はあくまで一例であり、推奨はしていない。
使用は自己責任。本当はカレンダーとかと連携したい

環境

サンプルのやり方

このサンプルを使う事で総勤務時間から自動的に上のルールに基づいて上から勤務時間を埋めていった提出ファイルができる予定だった。

$ python generate.py
働いた月を入れてね -> 12
ファイルの名前を入れてね(拡張子は含めない'.tex') -> hoge
働いた総時間を入れてね(120時間まで)-> 120
何をしたの? -> 開発
勤務時間を入れてね ex)'10:00~18:00' -> 10:00~18:00
10:00~18:00
休憩時間を入れてね(勤務時間に含まれている事)-> 12:00~13:00
12:00~13:00
総勤務時間:120
generating...

のようにすると

$ ls
hoge.tex

texファイルができています。 なのであとは

$ platex hoge.tex
$ dvipdfm hoge.dvi

とするとpdfができているので印刷してハンコを押して提出します。

成果物の例

f:id:mizukisonoko:20151209235221p:plain

展望

カレンダーとかと連携したい

まとめと報告

駆け足なので説明が雑ですみません。
上のコードにはバグがあり11日以降が作成されていません。 一応事務局に上のフォーマットが使えるかは確認を取っており使用可能だとの事です。
まだまだ本物には遠いので修正していきたいです。 不味かったら消します。

次は去年を同様@C_C_panchigaさんです。よろしくお願いします!