Exemplo n.º 1
0
    def saveHandler(self, action):
        data = {}
        for key, val in self.request.params.items():
            if key.startswith('field.'):
                data[key[6:]] = val

        if data:
            self.context.updateWidgetMapping(data)
            view.addMessage(self.request, 'Fields widgets have been saved.')
Exemplo n.º 2
0
    def removeHandler(self, action):
        ids = self.request.params.getall("field-id")

        for id in ids:
            field = self.context[id]
            event.notify(ObjectRemovedEvent(field, self.context, id))
            del self.context[id]

        if ids:
            view.addMessage(self.request, "Selected fields have been removed.")
Exemplo n.º 3
0
    def test_messages_render(self):
        self._init_memphis()

        view.addMessage(self.request, 'message')
        msg = view.renderMessages(self.request)
        self.assertEqual(msg, u'<div class="alert-message info">\n  <a class="close" href="#">\xd7</a>\n  <p>message</p>\n</div>\n')
        self.assertEqual(type(msg), unicode)

        msg = view.renderMessages(self.request)
        self.assertEqual(msg, '')
Exemplo n.º 4
0
    def modifyHandler(self, action):
        data = {}
        for key, val in self.request.params.items():
            if key.startswith('field:') and val != '__sys_default__':
                schName, fldId = key[6:].split(':', 1)
                data.setdefault(schName, {})[fldId] = val

        if data != self.context.widgets:
            self.context.widgets = data
            view.addMessage(self.request, 'Widgets have been modified.')
Exemplo n.º 5
0
    def modifyHandler(self, action):
        ids = self.request.params.getall('field-id')

        hidden = {}
        for fid in ids:
            sch, field = fid.split(':', 1)
            hidden.setdefault(sch, []).append(field)

        self.context.hiddenFields = hidden

        view.addMessage(self.request, 'Hidden fields have been modified.')
Exemplo n.º 6
0
    def test_messages_addmessage(self):
        self._init_memphis()

        service = IStatusMessage(self.request)

        # addMessage
        view.addMessage(self.request, 'message')

        self.assertEqual(service.clear(),
                         [u'<div class="alert-message info">\n  <a class="close" href="#">\xd7</a>\n  <p>message</p>\n</div>\n'])
        self.assertEqual(service.clear(), ())
Exemplo n.º 7
0
    def handleAdd(self, action):
        data, errors = self.extractData()

        if errors:
            view.addMessage(self.request, self.formErrorsMessage, 'warning')
        else:
            obj = self.createAndAdd(data)

            if obj is not None:
                self.addedObject = obj
                self.finishedAdd = True
                raise HTTPFound(location = '../../')
Exemplo n.º 8
0
    def handleAdd(self, action):
        data, errors = self.extractData()

        if errors:
            view.addMessage(
                self.request, self.formErrorsMessage, 'formError')
        else:
            for form in self.subforms:
                data, errors = form.extractData(setErrors=False)
                form.applyChanges(data)

            obj = self.createAndAdd(data.get('name',''), self.datasheets)
            if obj is not None:
                raise HTTPFound(location = self.nextURL(obj))
Exemplo n.º 9
0
    def removeHandler(self, action):
        user = self.context
        conn = ploud_config.PLOUD_POOL.getconn()
        cursor = conn.cursor()

        pol = POLICIES[user.type]
        pol.removeSite(self.site.id, cursor)

        site.removed = True
        cursor.close()
        conn.commit()
        ploud_config.PLOUD_POOL.putconn(conn)
        view.addMessage(request, "Site has been removed.")
        raise HTTPFound(location='index.html')
Exemplo n.º 10
0
    def handleAdd(self, action):
        data, errors = self.extractData()

        if errors:
            view.addMessage(self.request, (self.formErrorsMessage,) + errors, "formError")
            return

        changes = self.applyChanges(data)

        obj = self.createAndAdd(self.datasheets)
        if obj is not None:
            self.addedObject = obj
            self.finishedAdd = True
            raise HTTPFound(location=self.nextURL())
Exemplo n.º 11
0
    def updateHandler(self, action):
        data, errors = self.extractData()

        if not errors:
            site = self.context

            if site.disabled != data['disabled']:
                site.disabled = data['disabled']
                if site.disabled:
                    utils.disableHost(site)
                else:
                    utils.enableHost(site)

            view.addMessage(self.request, 'Site info has been updated.')
Exemplo n.º 12
0
    def update(self):
        request = self.request
        ptool = self.ptool = getUtility(IPasswordTool)

        passcode = request.params.get("passcode")
        principal = self.ptool.getPrincipal(passcode)
        self.info = IUserInfo(principal)

        if principal is not None:
            self.passcode = passcode
            self.principal = principal
        else:
            view.addMessage(request, _("Passcode is invalid."), "warning")
            raise HTTPFound(location="%s/resetpassword.html" % request.application_url)

        super(ResetPasswordForm, self).update()
Exemplo n.º 13
0
    def handle_register(self, action):
        request = self.request

        data, errors = self.extractData()
        if errors:
            view.addMessage(request, self.formErrorsMessage, 'error')
            return

        self.setPrincipal(self.create(data))

        user = getUtility(IAuthentication).getUserByLogin(data['login'])
        headers = security.remember(request, user.id)

        raise HTTPFound(
            location='%s/login-success.html'%request.application_url,
            headers = headers)
Exemplo n.º 14
0
    def changeUserType(self, action):
        data, errors = self.extractData()

        if not errors:
            view.addMessage(
                self.request,
                "User's membership type has been change.")

            user = self.context
            if user.type != data['policy']:
                user.type = data['policy']

                conn = ploud_config.PLOUD_POOL.getconn()
                cursor = conn.cursor()
                POLICIES[user.type].apply(user.id, cursor)
                cursor.close()
                conn.commit()
                ploud_config.PLOUD_POOL.putconn(conn)
Exemplo n.º 15
0
    def update(self):
        super(ContentTypeSchemas, self).update()

        self.adapters = getSiteManager().adapters
        self.requestProvided = interface.providedBy(self.request)

        context = self.context
        request = self.request

        if 'form-addschema' in request.params:
            view.addMessage(
                request, 'Content type schemas have been modified.')

            context.schemas = context.schemas + tuple([
                    id for id in request.params.getall('schema-id')
                    if id not in context.schemas])

        schemas = {}

        for name, sch in getUtilitiesFor(ISchemaType):
            schemas[name] = (sch.title, sch)

        for name, sch in getUtilitiesFor(schema.ISchemaType):
            schemas[name] = (sch.title, sch)

        enabled = []
        for schId in self.context.schemas:
            if schId in schemas:
                enabled.append(schemas[schId][1])
        
        self.enabled = enabled

        schemas = schemas.values()
        schemas.sort()
        self.schemas = [sch for t, sch in schemas 
                        if sch.name not in self.context.schemas]

        fields = []
        for sch, data in self.context.hiddenFields.items():
            for fid in data:
                fields.append('%s:%s'%(sch, fid))

        self.fields = fields
Exemplo n.º 16
0
    def update(self):
        site = None
        try:
            id = int(self.request.params.get('id'))
            for s in self.context.sites:
                if s.id == id:
                    site = s
                    break
            if site is not None:
                self.site = site
        except HTTPFound:
            raise
        except:
            pass

        if site is None:
            view.addMessage(self.request, 'Site id is required.')
            raise HTTPFound(location='index.html')

        super(RemoveSiteView, self).update()
Exemplo n.º 17
0
    def changeOrder(self, names, up=True):
        schemas = list(self.context.schemas)
        schemas_len = len(schemas)

        for name in names:
            idx = schemas.index(name)
            if up:
                new = idx - 1
                if new < 0 or schemas[new] in names:
                    continue
            else:
                new = idx + 1
                if new >= schemas_len or schemas[new] in names:
                    continue

            del schemas[idx]
            schemas.insert(new, name)

        self.context.schemas = tuple(schemas)
        view.addMessage(self.request, 'Schemas order has been changed.')
Exemplo n.º 18
0
    def changeOrder(self, ids, direction=0):
        context = self.context

        changed = False
        schema = context.schema

        for field_id in ids:
            field = context[field_id]
            fields = [name for name, f in getFieldsInOrder(schema)]

            cur_pos = fields.index(field_id)
            if direction == 1:
                new_pos = cur_pos - 1
                if new_pos < 0 or fields[new_pos] in ids:
                    continue

                slice_end = new_pos - 1
                if slice_end == -1:
                    slice_end = None
                intervening = [schema[field_id] for field_id in fields[cur_pos - 1 : slice_end : -1]]
            else:
                new_pos = cur_pos + 1
                if new_pos > len(ids) + 1 or fields[new_pos] in ids:
                    continue
                intervening = [schema[field_id] for field_id in fields[cur_pos + 1 : new_pos + 1]]

            # changing order
            prev = field.order
            for f in intervening:
                order = f.order
                f.order = prev
                prev = order
            field.order = prev

            changed = True
            context.updateSchema()

        if changed:
            view.addMessage(self.request, u"Fields srder has been changed.")
Exemplo n.º 19
0
    def update(self):
        super(ResetPassword, self).update()

        request = self.request

        mailer = getUtility(mail.IMailer)
        self.from_name = mailer.email_from_name
        self.from_address = mailer.email_from_address

        if request.params.has_key("button.send"):
            login = request.params.get("login", "")

            principal = getUtility(IAuthentication).getUserByLogin(login)
            if principal is not None:
                passcode = getUtility(IPasswordTool).generatePasscode(principal)

                template = ResetPasswordTemplate(principal, request)
                template.passcode = passcode
                template.send()

                view.addMessage(request, _("Your password has been reset and is being emailed to you."))
                raise HTTPFound(location=request.application_url)

            view.addMessage(request, _(u"System can't restore password for this principal."))
Exemplo n.º 20
0
    def changePassword(self, action):
        request = self.request
        data, errors = self.extractData()

        if errors:
            view.addMessage(request, self.formErrorsMessage, "error")
        else:
            try:
                self.ptool.resetPassword(self.passcode, data["password"])
            except Exception, exc:
                view.addMessage(request, str(exc), "warning")
                return

            user = getUtility(IAuthentication).getUserByLogin(self.info.login)
            headers = security.remember(request, user.id)

            view.addMessage(request, _("You have successfully changed your password."))

            raise HTTPFound(headers=headers, location=request.application_url)
Exemplo n.º 21
0
    def removeHandler(self, action):
        rem_sch = self.request.params.getall('schema-id')
        self.context.schemas = tuple(
            [sch for sch in self.context.schemas if sch not in rem_sch])

        view.addMessage(self.request,'Content type schemas have been modified.')
Exemplo n.º 22
0
    def saveHandler(self, action):
        self.context.behaviors = self.request.params.getall('behavior-id')

        view.addMessage(
            self.request, 'Content type behaviors have been modified.')
Exemplo n.º 23
0
 def handleCancel(self, action):
     view.addMessage(self.request, self.formCancelMessage)
     raise HTTPFound(location=self.cancelURL())
Exemplo n.º 24
0
 def handleTestSchema(self, action):
     data, errors = self.extractData()
     if errors:
         view.addMessage(self.request, self.formErrorsMessage, "error")
     else:
         view.addMessage(self.request, _("Schema has been processed successfully."))