[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Any experience with MRBS



Hi Ralf,

On 11-10-07 at 07:45am, RalfGesellensetter wrote:
> I wonder if anybody here has got experience with the
> Meeting Room Booking System (MRBS running with LAMP)?
> 
> We plan to use this online tool to allow teachers booking
> our resources (like special rooms or mobile beamers).
> 
> It should be easy to bind MRBS [1} to tjener's LDAP,
> whereas just teachers should be allowed to access the
> system. 
> 
> AFAIK there is a fork to be run as moodle block, but
> the most recent version of MRBS should do the job 
> pretty well.

I have used MRBS for a client in the past.  But not specifically with 
Skolelinux.

It is some time ago, and back then I found no better alternatives.

More recently I have succeeded using calendarserver for booking 
purposes, and I wholeheartedly recommend doing that instead: It uses 
open data and protocols, can be a little tricky to setup at first, but 
benefit is high as it is then accessible by many standard calendaring 
clients.

In my configurations calendarserver offers only CalDAV access, and I use 
homemade script myicsdump (attached) to generate ical files of selected 
areas, making those public with Apache2.

myicsdump uses a helper script localics2ics, available here: 
http://source.jones.dk/?p=bin.git;a=blob;f=localics2ics

 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private
#!/bin/sh
#
# Copyright © 2011 Jonas Smedegaard <dr@jones.dk>
# Description: Dump selected calendarserver data as .ics files
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
#
# Depends: calendarserver localics2ics

set -e

# TODO: make these variables overridable from configfile or ENV
calendarbasedir="/var/spool/caldavd/calendars/__uids__"
# TODO: Resolve project and hostname from /etc/local-* files
project=Homebase
hostname=event.homebase.dk
icsbasedir=~/public_websites/"$hostname"
icsindexpage="$icsbasedir/index.html"

dumpcal() {
	set -e
	user="$1"
	calendar="$2"
	glob="$3"
	shift 3 # FIXME: properly check that above variables are nonzero

	calendardir=$(find "$calendarbasedir" -maxdepth 4 -mindepth 4 -type d -path "$glob")
	# FIXME: fail if glob matched multiple calendar dirs (or use head -n 1)
	icsdir="$icsbasedir/$user/$calendar/ical"
	icsfile="$icsdir/index.ics"
	icstmpfile="$icsdir/index.ics~"

	# skip if no events found are newer than last dump
	if [ -d "$icsdir" ] && [ -s "$icsfile" ]; then
		newevents=$(find "$calendardir" -maxdepth 1 -type f -name "*.ics" -cnewer "$icsfile")
		if [ -z "$newevents" ]; then
			return
		fi
	fi

	mkdir -p "$icsdir"
	find "$calendardir" -maxdepth 1 -type f -name "*.ics" -execdir cat {} + > "$icstmpfile"
	# Apple iCal chokes on non-UTF data that calendarserver tolerates
	localics2ics "$icstmpfile" > "$icsfile"
	rm "$icstmpfile"
	edited=1
}

edited=

#dumpcal fl unknown "**/6f176ab7*/B35C80D8*"
dumpcal kpstaff t15 "**/3c77323d*/9594D5E8*"
dumpcal kpstaff t16 "**/3c77323d*/2E0F8694*"
dumpcal kpstaff t17 "**/3c77323d*/B4556602*"
dumpcal kpstaff t18 "**/3c77323d*/A53CEE90*"
dumpcal kpstaff room "**/3c77323d*/86D01505*"
dumpcal kpstaff staff "**/3c77323d*/calendar"
dumpcal kpstaff outpost-draft "**/3c77323d*/57B21073*"

# rewrite front page only if calendars where updated
[ -n "$edited" ] || exit 0

icspaths=$(cd "$icsbasedir" && find * -type f -name "index.ics" -not -empty | sort)
cat <<"EOF" > "$icsindexpage"
<html>
<head>
</head>
<body>
<h1>Public Calendars at $project</h1>
<ul>
EOF
for icspath in $icspaths; do
	icsdir=$(dirname "$icspath")
	echo "<li><a href=\"$icsdir/\">http://$hostname/$icsdir/</a>" >> "$icsindexpage"
done
cat <<EOF >> "$icsindexpage"
</body>
</html>
EOF

Attachment: signature.asc
Description: Digital signature


Reply to: