Beispiel #1
0
 def _process(self):
     form = AddChatroomForm(obj=FormDefaults(name=self.event.title),
                            date=self.event.start_dt_local)
     if form.validate_on_submit():
         chatroom = Chatroom(created_by_user=session.user)
         event_chatroom = ChatroomEventAssociation(event=self.event,
                                                   chatroom=chatroom)
         form.populate_obj(event_chatroom,
                           fields=form.event_specific_fields)
         form.populate_obj(chatroom, skip=form.event_specific_fields)
         chatroom.jid_node = form.jid_node.data
         db.session.add_all((chatroom, event_chatroom))
         db.session.flush()
         create_room(chatroom)
         notify_created(chatroom, self.event, session.user)
         self.event.log(EventLogRealm.management, EventLogKind.positive,
                        'Chat',
                        'Chatroom created: {}'.format(chatroom.name),
                        session.user)
         flash(_('Chatroom created'), 'success')
         return jsonify_data(flash=False)
     return jsonify_template('manage_event_edit.html',
                             render_plugin_template,
                             form=form,
                             event=self.event)
 def run(self, new_event, cloners, shared_data):
     for old_event_chatroom in self.old_event.chatroom_associations:
         event_chatroom = ChatroomEventAssociation(
             chatroom=old_event_chatroom.chatroom,
             hidden=old_event_chatroom.hidden,
             show_password=old_event_chatroom.show_password)
         new_event.chatroom_associations.append(event_chatroom)
     db.session.flush()
 def _process(self):
     form = self._get_attach_form()
     if form.validate_on_submit():
         event_chatroom = ChatroomEventAssociation(event_id=self.event_id, chatroom=form.chatroom.data)
         db.session.add(event_chatroom)
         notify_attached(form.chatroom.data, self.event, session.user)
         flash(_('Chatroom added'), 'success')
         self.event.log(EventLogRealm.management, EventLogKind.positive, 'Chat',
                        'Chatroom attached: {}'.format(event_chatroom.chatroom.name), session.user)
     return redirect(url_for_plugin('.manage_rooms', self.event))
    def migrate_chatrooms(self):
        print cformat('%{white!}migrating chatrooms')
        default_server = ChatPlugin.settings.get('muc_server')
        chatrooms = {}
        for old_room in committing_iterator(
                self.chat_root['indexByID']._data.itervalues()):
            has_custom_server = not old_room._createdInLocalServer and old_room._host != default_server
            custom_server = convert_to_unicode(
                old_room._host) if has_custom_server else ''
            identifier = (custom_server, old_room._name.lower())
            room = chatrooms.get(identifier)
            if room:
                print cformat(
                    '- %{cyan}{}   %{yellow!}DUPLICATE%{reset}').format(
                        room.name)
            else:
                user = User.get(int(old_room._owner.id)) or User.get(
                    Config.getInstance().getJanitorUserId())
                room = Chatroom(
                    jid_node=convert_to_unicode(old_room._name.lower()),
                    name=convert_to_unicode(old_room._name),
                    description=convert_to_unicode(old_room._description),
                    password=convert_to_unicode(old_room._password),
                    custom_server=custom_server,
                    created_by_user=user,
                    created_dt=old_room._creationDate,
                    modified_dt=old_room._modificationDate)
                chatrooms[identifier] = room
                db.session.add(room)
                print cformat('- %{cyan}{}').format(room.name)
                if room.custom_server:
                    print cformat(
                        '  %{blue!}Custom server:%{reset} {}').format(
                            room.custom_server)

            events = set()
            for event in old_room._conferences:
                assoc = ChatroomEventAssociation(
                    event_id=int(event),
                    chatroom=room,
                    hidden=not old_room._showRoom,
                    show_password=old_room._showPass)
                db.session.add(assoc)
                events.add(assoc.event_id)
            if events:
                print cformat('  %{blue!}Events:%{reset} {}').format(', '.join(
                    map(unicode, events)))
            else:
                print cformat('  %{yellow!}no events%{reset}')
 def _process(self):
     form = AddChatroomForm(obj=FormDefaults(name=to_unicode(self.event.title)),
                            date=self.event.getAdjustedStartDate())
     if form.validate_on_submit():
         chatroom = Chatroom(created_by_user=session.user)
         event_chatroom = ChatroomEventAssociation(event_id=self.event_id, chatroom=chatroom)
         form.populate_obj(event_chatroom, fields=form.event_specific_fields)
         form.populate_obj(chatroom, skip=form.event_specific_fields)
         chatroom.jid_node = form.jid_node.data
         db.session.add_all((chatroom, event_chatroom))
         db.session.flush()
         create_room(chatroom)
         notify_created(chatroom, self.event, session.user)
         self.event.log(EventLogRealm.management, EventLogKind.positive, 'Chat',
                        'Chatroom created: {}'.format(chatroom.name), session.user)
         flash(_('Chatroom created'), 'success')
         return redirect(url_for_plugin('.manage_rooms', self.event))
     return WPChatEventMgmt.render_template('manage_event_edit.html', self._conf, form=form, event=self.event)