2014-02-07 16 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

我建議你避免觸摸用戶架構。 您可以使用您的問題和文件創建自定義內容類型,並與您的用戶分享。