def myroom(request): acc = acc_for_user(request.user) my_meetings_sco = get_sco(acc, _user_meeting_folder(request, acc)) template_sco_id = acc.default_template_sco_id if not template_sco_id: template_sco_id = settings.DEFAULT_TEMPLATE_SCO template_sco = get_sco(acc, template_sco_id) room = None try: room = Room.by_name(acc, name=request.user.username) except MultipleObjectsReturned: raise ValueError("Oops - there seem to be multiple rooms with name '%s'" % request.user.username) except ObjectDoesNotExist: room = Room(creator=request.user, folder_sco=my_meetings_sco, name=request.user.username, source_sco=template_sco) _update_room(request, room, dict(access='public')) if not room: raise ValueError("Opps - can't find your room") return _goto(request, room)
def _import_room(request, acc, r): modified = False room = None if room and (abs(room.lastupdate() - time.time()) < settings.IMPORT_TTL): return room if r.has_key('urlpath'): r['urlpath'] = r['urlpath'].strip('/') try: room = Room.by_sco(r['sco']) for key in ('sco', 'name', 'source_sco', 'urlpath', 'description', 'user_count', 'host_count'): if r.has_key(key) and hasattr(room, key): rv = getattr(room, key) if rv != r[key] and r[key] is not None and r[key]: setattr(room, key, r[key]) modified = True if modified: logging.debug("+++ saving room ... %s" % pformat(room)) room.save() except ObjectDoesNotExist: if r['folder_sco']: try: room = Room.objects.create(sco=r['sco'], source_sco=r['source_sco'], name=r['name'], urlpath=r['urlpath'], description=r['description'], creator=request.user, folder_sco=r['folder_sco']) except Exception, e: room = None pass