Example #1
0
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)
Example #2
0
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