2014-02-07 3 views
0

Я должен создать конференцию, эта конференция происходит каждый год один раз.Хороший способ создать пользователей из формы

Пользователи должны зарегистрироваться, заполнить ~ 10 вопросов и загрузить 2 файлов. В следующем году пользователи должны иметь возможность входа и исправления своих данных.

планируется использовать:
plone.app.forms
dexterity.membrane

Любые идеи приветствуются.

ответ

2

вы можете использовать альтернативный подход, основанный на функции, предоставляемой членством портала. Создайте свой собственный объект UserFolder и сообщите членству портала, чтобы использовать его как тип папки пользователя. Для этого вам придется просто изменить настройки членства портала во время установки и включить «мое действие папки»:

def setup_membership(self, site): 
    portal_membership = getToolByName(site, 'portal_membership') 
    workflow = getMultiAdapter((site, site.REQUEST), name=u'plone_tools').workflow() 

    # setup member area 
    if not site.hasObject(USERS_FOLDER_ID): 
     site.invokeFactory('Folder', USERS_FOLDER_ID, **{'title':'Users'}) 

    users_folder = site[USERS_FOLDER_ID] 
    users_folder.processForm() 

    # publish the users folder 
    ... 

    users_folder.setExcludeFromNav(True) 
    users_folder.reindexObject() 

    # set members area folder 
    portal_membership.setMembersFolderById(USERS_FOLDER_ID) 

    # setup member area type 
    portal_membership.manage_setMemberAreaType('UserProfile') 

    # enable members memberarea creation 
    portal_membership.memberareaCreationFlag = 1 

    # enable the 'my folder' user action, etc... 
    ... 

Таким образом, вы будете по-прежнему использовать стандартный пользователь Plone, и вы получите полный контроль над вашим приложением, вы также можете выбрать, куда помещать объекты UserFolder (возможно, в папку/users), рабочие процессы, добавлять новые поля профиля и т. д. Не требуется мембраны.

У меня также было аналогичное требование для загрузки N и только макс. N вложений (или других объектов). Я предлагаю вам добавить обработчик событий для добавления объектов UserProfile. Таким образом, вы можете принудительно создать два или более вложения файлов и предоставить пользователю только разрешение на редактирование. Он не сможет добавлять другие вложения, и вы все еще используете стандартные файлы или объекты изображения, без необходимости иметь дело с хранилищем blob.

Это хорошо сработало для меня с проектом на основе архетипов, но для ловкости он должен быть таким же.

Надеюсь, что это может помочь :)

0

Я предлагаю вам не касаться пользовательской схемы. Вы можете создать собственный тип контента с вашими вопросами и файлами и поделиться им с вашими пользователями.

Смежные вопросы