Skip to content

複数の部署が評価機を週単位で予約を入れられるツール。

Notifications You must be signed in to change notification settings

isuka/em_reserve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#------------------------------------------------------------------------------#
#                                                                              #
# Evaluation Machine Reserve                                                   #
#                                                                              #
#------------------------------------------------------------------------------#

複数の部署が評価機を週単位で予約するためのツール。

予約開始曜日から6日間予約を受付し、7日目は予約の調整を行うため予約不可にする。
1週間経過すると自動的に日付が切り替わる。

予約が入るとトップページに予約状況が表示される。予約がない場合は日付のみ表示。

本ツールの画面は以下。
  [ユーザモード]
  - View      : 現在の予約状況を表示する画面。
  - Post      : 予約を行う画面。
  - Schedule  : 評価機の予定を表示する画面。
  - Admin     : 管理モードへのログイン画面。

  [管理モード]
  - Reserve   : Viewの1週間前の予約状況が表示される。
  - Mail      : 予約状況の自動メール配信画面。(未実装)
  - Schedule  : ユーザモードのScheduleの編集画面。
                チェックボックスにチェックした日は予約不可となる。
                テキストボックスへはカレンダーにメッセージを表示する。
  - Log       : 生ログデータの表示/編集画面。
  - Time Zone : タイムゾーンのON/OFF設定画面。
  - Setting   : 各種設定画面。
                Login Timeoutは管理モードで操作を行わなかった時にログアウト
                するまでの時間。
                Post Available Controlは特定曜日の予約を制限したい場合に使用。

初期設定が必要な変数は以下。
  $LOG_BG_COLOR  : Viewで表示されるログの背景色。

  $RSV_BASE_WDAY : 予約受付開始曜日。
  $CAL_BASE_WDAY : カレンダーに予約状況を表示する開始曜日。
                   通常は$RSV_BASE_WDAYの翌日。

  $MY_SECTION    : メール宛先で自部署を最後に記述するための自部署設定。
                   メール機能が未実装なので意味なし。

  $MAIL_DOMAIN   : Post画面でデフォルトで表示するメールドメイン。
  $SITE_TOP      : サイト名。

ファイルフォーマットは以下。
  
--------------------------------------------------------------------------------
  
  Log File
    [ファイル]
      $LOG_FILE
 
    [記録方法]
      Tab区切り
    
    [変数]<global>
      $machine      : 予約装置名
      $rsv_day      : 予約日
      $zone_num     : 0(reserve)
      $key          : 1回の投稿ごとにカウント、ログの並び替えのキーとして使用
      $log_num      : ログ1件ごとにカウント
      $rsv_day_num  : 0(reserve)
      $zone_begin   : 予約の開始時間(zone表示)
      $zone_end     : 予約の終了時間(zone表示)
      $rsv_time     : 予約時間帯名(zone定義名)
      $section      : 予約者所属部署
      $name         : 予約者名
      $pbx          : 予約者内線
      $mail         : 予約者メールアドレス
      $usage        : 装置使用目的
      $post_time    : 予約投稿時間
  
--------------------------------------------------------------------------------
 
  Module Control File
    [ファイル]
      $MCFILE
 
    [記録方法]
      カンマ区切り
      
    [変数]<global>
      $mcf[ 0] : Admin Pass
          [ 1] : reserved(Login ID)
          [ 2] : reserved(Login IP)
          [ 3] : Login Time Out
          [ 4] : 
          [ 5] : Current Time Zone
          [ 6] : Post Control
          [ 7] : Calender Color List
          [ 8] : Scheduled Day
          [ 9] : Machine List
          [10] : Section List
 
--------------------------------------------------------------------------------
 
  Lock File
    [ファイル]
      $LOCK_FILE
 
    [記録方法]
      Tab区切り
 
    [変数]<my>
      $time : Login Time(UNIX Time)
      $id   : Login ID
 
--------------------------------------------------------------------------------
 
  Zone List
    [ファイル]
      $ZONE_LIST
 
    [記録方法]
      Tab区切り
 
    [変数]<my>
      $key   : レコード番号、ファイル内で一意
      $zone  : Zoneのセット番号、複数の時間帯管理用
      $name  : Zoneの名前(表示名)
      $begin : Zoneの開始時刻(zone値)
      $end   : Zoneの終了時刻(zone値)
      $valid : Zoneの有効化フラグ
               無効(=0)にするとPost画面に表示されない
      $view  : Zoneの表示フラグ
               無効(=0)にするとカレンダーに表示されない
      $flag  : Combinationフラグ
               有効(=1)にすると複数のZoneの組み合わせである事を表す
      $cmb   : $flagが有効な時組み合わせるZoneの$keyを格納する
               尚$keyは同一の$zoneでなければならない
      
      本スクリプトでは1日を10分刻みで144に分割して管理し、
      投稿時の時間帯、カレンダーの表示にZone Timeを使用する。
      
      [0:00 - 0:10]の時間帯をzone = 0として
      以後[0:10 - 0:20] = 1, [0:30 - 0:40] = 2,.. , [23:50 - 24:00] = 143
      とzone番号を割り振っている。
      各zoneの値は%zone_hashに格納されている。



About

複数の部署が評価機を週単位で予約を入れられるツール。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages