Exemplo n.º 1
0
class IPersonalInfo(Interface):

    fullname = schema.TextLine(
        title=_(u'Name'),
        required=False,
    )

    gender = schema.TextLine(title=_(u'Gender'), required=True)

    # gender = schema.Choice(
    #     title=_(u'Gender'),
    #     values=(u'Male', u'Female'),
    #     default=u'Male / Female?',
    #     default=u'Female',
    #     required=True
    # )

    birthdate = schema.TextLine(title=_(u'Birthdate'), required=False)

    # birthdate = schema.Date(
    #     title=_(u'Birthdate'),
    #     default=datetime.date(2007, 4, 1),
    #     required=False
    # )

    mobile = schema.TextLine(title=_(u'Mobile'), required=False)
Exemplo n.º 2
0
class IChat(Interface):

    irc = schema.TextLine(title=_(u'IRC nickname'), required=False)

    telegram = schema.TextLine(title=_(u'Telegram account'), required=False)

    skype = schema.TextLine(title=_(u'Skype account'), required=False)
Exemplo n.º 3
0
class ISocialNetwork(Interface):

    twitter = schema.TextLine(title=_(u'Twitter nickname'), required=False)

    instagram = schema.TextLine(title=_(u'Instagram account'), required=False)

    facebook = schema.TextLine(title=_(u'Facebook account'), required=False)
Exemplo n.º 4
0
class IAddress(Interface):

    address1 = schema.TextLine(title=_(u'Address 1'), required=False)

    address2 = schema.TextLine(title=_(u'Address 2'), required=False)

    country = schema.TextLine(title=_(u'Country'), required=False)

    city = schema.TextLine(title=_(u'City'), required=False)
Exemplo n.º 5
0
class IWork(Interface):

    institution = schema.TextLine(title=_(u'Institution / Organization'),
                                  required=False)

    instadd = schema.TextLine(title=_(u'Institution address'), required=False)

    officephone = schema.TextLine(title=_(u'Office phone'), required=False)

    position = schema.TextLine(title=_(u'Current position'), required=False)

    profession = schema.TextLine(title=_(u'Profession'), required=False)
Exemplo n.º 6
0
class Wizard(wizard.Wizard):
    label = _(u'Start')
    validate_back = False

    def update(self):
        # Use collective.beaker for session managment
        session = ISession(self.request, None)
        self.sessionmanager = session

        super(Wizard, self).update()

    @property
    def steps(self):
        steps = [IntroStep, PersonalDataStep, SocialNetworkStep, OutroStep]
        return steps

    def applySteps(self, pfg, initial_finish=True):
        """ Run the apply method for each step in the wizard """
        for step in self.activeSteps:
            if hasattr(step, 'apply'):
                step.apply(pfg, initial_finish=initial_finish)

    def showClear(self):
        return False

    def get_finish_url(self):
        return api.portal.get().absolute_url()

    def finish(self):
        super(Wizard, self).finish()
        url = self.get_finish_url()
        return self.request.response.redirect(url)
Exemplo n.º 7
0
class IntroStep(wizard.Step):
    prefix = 'intro'
    fields = {}
    label = _(u'Introduction')
    index = viewpagetemplatefile.ViewPageTemplateFile('templates/intro.pt')

    def __init__(self, context, request, wizard):
        # Use collective.beaker for session managment
        session = ISession(request, None)
        self.sessionmanager = session

        super(IntroStep, self).__init__(context, request, wizard)
Exemplo n.º 8
0
class OutroStep(wizard.Step):
    prefix = 'outro'
    fields = {}
    label = _(u'Thanks!')
    index = viewpagetemplatefile.ViewPageTemplateFile('templates/outro.pt')

    def __init__(self, context, request, wizard):
        # Use collective.beaker for session managment
        session = ISession(request, None)
        self.sessionmanager = session

        super(OutroStep, self).__init__(context, request, wizard)

    def get_url(self):

        url = self.wizard.get_finish_url()
        return url
Exemplo n.º 9
0
class SocialNetworkStep(wizard.GroupStep):
    prefix = 'Social'
    label = _(u'Social Network accounts')
    description = _(u'Input your social networks details')

    template = viewpagetemplatefile.ViewPageTemplateFile(
        'templates/socialnetwork.pt')
    fields = field.Fields()
    groups = [ChatGroup, SocialNetworkGroup]

    def __init__(self, context, request, wizard):
        # Use collective.beaker for session managment
        session = ISession(request, None)
        self.sessionmanager = session

        super(SocialNetworkStep, self).__init__(context, request, wizard)

    def load(self, context):
        member = api.user.get_current()
        data = self.getContent()

        # Chats group
        if not data.get('irc', None):
            irc = member.getProperty('irc')
            if type(irc).__name__ == 'object':
                irc = None
            data['irc'] = irc

        if not data.get('telegram', None):
            telegram = member.getProperty('telegram')
            if type(telegram).__name__ == 'object':
                telegram = None
            data['telegram'] = telegram

        if not data.get('skype', None):
            skype = member.getProperty('skype')
            if type(skype).__name__ == 'object':
                skype = None
            data['skype'] = skype

        # Social Network group
        if not data.get('twitter', None):
            twitter = member.getProperty('twitter')
            if type(twitter).__name__ == 'object':
                twitter = None
            data['twitter'] = twitter

        if not data.get('instagram', None):
            instagram = member.getProperty('instagram')
            if type(instagram).__name__ == 'object':
                instagram = None
            data['instagram'] = instagram

        if not data.get('facebook', None):
            facebook = member.getProperty('facebook')
            if type(facebook).__name__ == 'object':
                facebook = None
            data['facebook'] = facebook

    def apply(self, context, initial_finish=False):
        data = self.getContent()
        return data

    def applyChanges(self, data):
        member = api.user.get_current()
        member.setMemberProperties(
            mapping={
                'irc': data['irc'],
                'telegram': data['telegram'],
                'skype': data['skype'],
                'twitter': data['twitter'],
                'instagram': data['instagram'],
                'facebook': data['facebook']
            })
Exemplo n.º 10
0
class SocialNetworkGroup(group.Group):
    prefix = 'socialnetwork'
    label = _(u'Social Network Information')
    fields = field.Fields(ISocialNetwork)
Exemplo n.º 11
0
class ChatGroup(group.Group):
    prefix = 'chats'
    label = _(u'Chats Information')
    fields = field.Fields(IChat)
class PersonalDataStep(wizard.GroupStep):
    prefix = 'Address'
    label = _(u'Personal data, address and work details')
    description = _(u'Input your personal data address and work details')

    template = viewpagetemplatefile.ViewPageTemplateFile(
        'templates/personaldata.pt')
    fields = field.Fields()
    groups = [PersonalInfoGroup, AddressGroup, WorkGroup]

    def __init__(self, context, request, wizard):
        # Use collective.beaker for session managment
        session = ISession(request, None)
        self.sessionmanager = session

        super(PersonalDataStep, self).__init__(context, request, wizard)

    def load(self, context):
        member = api.user.get_current()
        data = self.getContent()

        # Personal info group
        if not data.get('fullname', None):
            fullname = member.getProperty('fullname')
            if type(fullname).__name__ == 'object':
                fullname = None
            data['fullname'] = fullname

        if not data.get('gender', None):
            gender = member.getProperty('gender')
            if type(gender).__name__ == 'object':
                gender = None
            data['gender'] = gender

        if not data.get('birthdate', None):
            birthdate = member.getProperty('birthdate')
            if type(birthdate).__name__ == 'object':
                birthdate = None
            data['birthdate'] = birthdate

        if not data.get('mobile', None):
            mobile = member.getProperty('mobile')
            if type(mobile).__name__ == 'object':
                mobile = None
            data['mobile'] = mobile

        # Address group
        if not data.get('address1', None):
            address1 = member.getProperty('address1')
            if type(address1).__name__ == 'object':
                address1 = None
            data['address1'] = address1

        if not data.get('address2', None):
            address2 = member.getProperty('address2')
            if type(address2).__name__ == 'object':
                address2 = None
            data['address2'] = address2

        if not data.get('country', None):
            country = member.getProperty('country')
            if type(country).__name__ == 'object':
                country = None
            data['country'] = country

        if not data.get('city', None):
            city = member.getProperty('city')
            if type(city).__name__ == 'object':
                city = None
            data['city'] = city

        # Office group
        if not data.get('institution', None):
            institution = member.getProperty('institution')
            if type(institution).__name__ == 'object':
                institution = None
            data['institution'] = institution

        if not data.get('instadd', None):
            instadd = member.getProperty('instadd')
            if type(instadd).__name__ == 'object':
                instadd = None
            data['instadd'] = instadd

        if not data.get('officephone', None):
            officephone = member.getProperty('officephone')
            if type(officephone).__name__ == 'object':
                officephone = None
            data['officephone'] = officephone

        if not data.get('profession', None):
            profession = member.getProperty('profession')
            if type(profession).__name__ == 'object':
                profession = None
            data['profession'] = profession

    def apply(self, context, initial_finish=False):
        data = self.getContent()
        return data

    def applyChanges(self, data):
        member = api.user.get_current()
        member.setMemberProperties(
            mapping={
                'fullname': data['fullname'],
                'gender': data['gender'],
                'birthdate': data['birthdate'],
                'mobile': data['mobile'],
                'address1': data['address1'],
                'address2': data['address2'],
                'country': data['country'],
                'city': data['city'],
                'institution': data['institution'],
                'instadd': data['instadd'],
                'officephone': data['officephone'],
                'profession': data['profession']
            })
class WorkGroup(group.Group):
    prefix = 'work'
    label = _(u'Work Details')
    fields = field.Fields(IWork)
class AddressGroup(group.Group):
    prefix = 'address'
    label = _(u'Address Details')
    fields = field.Fields(IAddress)
class PersonalInfoGroup(group.Group):
    prefix = 'personalinfo'
    label = _(u'Personal information')
    # schema = IPersonalInfo
    fields = field.Fields(IPersonalInfo)