Changeset 9890af in indico


Ignore:
Timestamp:
08/15/11 09:31:40 (22 months ago)
Author:
Pedro Ferreira <jose.pedro.ferreira@…>
Branches:
master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 0da0c1403bae8e51d8229f460181c71b9e6dda72
Children:
758d74
Parents:
bdcdee
git-author:
Adrian Moennich <jerome.ernst.monnich@…> (04/29/11 13:39:03)
git-committer:
Pedro Ferreira <jose.pedro.ferreira@…> (08/15/11 09:31:40)
Message:

[IMP] Migrate old PD; fix cloning

Location:
indico/MaKaC
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/registration.py

    rbdcdee r9890af  
    5656class RegistrationForm(Persistent): 
    5757 
    58     def __init__(self, conf, groupData=None): 
     58    def __init__(self, conf, groupData=None, skipPersonalData=False): 
    5959        self._conf = conf 
    6060        if groupData is None: 
     
    9191        self._statusesGenerator=Counter() 
    9292        #Multiple-Subforms 
    93         self.personalData = PersonalData() 
    94         self.personalDataNew = PersonalDataForm(self) 
     93        if not skipPersonalData: 
     94            self.personalData = PersonalDataForm(self) 
    9595        #Simple-SubForms 
    9696        self.sessionsForm = SessionsForm() 
     
    102102        self._generalSectionGenerator = Counter() 
    103103        self.generalSectionForms={} 
    104         self.addGeneralSectionForm(self.personalDataNew, True) 
     104        if not skipPersonalData: 
     105            self.addGeneralSectionForm(self.personalData, True) 
    105106        #All SortedForms 
    106107        self._sortedForms=[] 
    107         self.addToSortedForms(self.personalDataNew) 
     108        if not skipPersonalData: 
     109            self.addToSortedForms(self.personalData) 
    108110        self.addToSortedForms(self.reasonParticipationForm) 
    109111        self.addToSortedForms(self.sessionsForm) 
     
    115117 
    116118    def clone(self, conference): 
    117         form = RegistrationForm(conference) 
     119        form = RegistrationForm(conference, skipPersonalData=True) 
    118120        form.setConference(conference) 
    119121        form.setAnnouncement(self.getAnnouncement()) 
     
    139141        form.setAllSessions() 
    140142        form.notification=self.getNotification().clone() 
    141         form.personalData = self.getPersonalData().clone() 
     143        form.personalData = self.getPersonalData().clone(form) 
     144        form.generalSectionForms[form.personalData.getId()] = form.personalData 
    142145        acf = self.getAccommodationForm() 
    143146        if acf is not None : 
     
    412415        return self.notification 
    413416 
     417    def _convertPersonalData(self): 
     418        if isinstance(self.personalData, PersonalDataForm): 
     419            return 
     420        pd = PersonalDataForm(self) 
     421        self.addGeneralSectionForm(pd, True, 0) 
     422        for f in pd.getSortedFields(): 
     423            f.setDisabled(not self.personalData.getDataItem(f.getPDField()).isEnabled()) 
     424            f.setMandatory(self.personalData.getDataItem(f.getPDField()).isMandatory()) 
     425        for registrant in self.getConference().getRegistrants().itervalues(): 
     426            mg = MiscellaneousInfoGroup(registrant, pd) 
     427            registrant.addMiscellaneousGroup(mg) 
     428            for f in pd.getSortedFields(): 
     429                val = getattr(registrant, '_' + f.getPDField()) 
     430                fakeParams = {f.getInput().getHTMLName(): val} 
     431                f.getInput().setResponseValue(mg.getResponseItemById(f.getId()), fakeParams, registrant, mg) 
     432        self.personalData = pd 
     433 
    414434    def getPersonalData(self): 
     435        self._convertPersonalData() 
    415436        return self.personalData 
    416  
    417     def getPersonalDataNew(self): 
    418         return self.personalDataNew 
    419437 
    420438    def getFurtherInformationForm(self): 
     
    468486        return self.getGeneralSectionForms().values() 
    469487 
    470     def addGeneralSectionForm(self, gsf, preserveTitle=False): 
     488    def addGeneralSectionForm(self, gsf, preserveTitle=False, pos=None): 
    471489        id = str(self._getGeneralSectionGenerator().newCount()) 
    472490        while self.getGeneralSectionFormById(id) != None: 
     
    476494            gsf.setTitle(  _("Miscellaneous information %s")%gsf.getId()) 
    477495        self.generalSectionForms[gsf.getId()]=gsf 
    478         self.addToSortedForms(gsf) 
     496        self.addToSortedForms(gsf, pos) 
    479497        self.notifyModification() 
    480498 
     
    29342952 
    29352953class PersonalDataForm(GeneralSectionForm): 
    2936     def __init__(self, regForm): 
    2937         GeneralSectionForm.__init__(self, regForm, {'title': 'Personal Data (New)'}, True) 
     2954    def __init__(self, regForm, createFields=True): 
     2955        GeneralSectionForm.__init__(self, regForm, {'title': 'Personal Data'}, True) 
    29382956 
    29392957        fields = ( 
     
    29622980 
    29632981        self._pdMap = {} 
    2964         for fieldInfo in fields: 
    2965             field = GeneralField(self, fieldInfo) 
    2966             self._pdMap[fieldInfo['pd']] = field 
    2967             self.addToSortedFields(field) 
     2982        if createFields: 
     2983            for fieldInfo in fields: 
     2984                field = GeneralField(self, fieldInfo) 
     2985                self._pdMap[fieldInfo['pd']] = field 
     2986                self.addToSortedFields(field) 
     2987 
     2988    def clone(self, regForm): 
     2989        pf = PersonalDataForm(regForm, False) 
     2990        pf.setId(self.getId()) 
     2991        pf.setValues(self.getValues()) 
     2992        pf.setEnabled(self.isEnabled()) 
     2993        pf.setRequired(self.isRequired()) 
     2994        for field in self.getSortedFields(): 
     2995            f = field.clone(pf) 
     2996            pf.addToSortedFields(f) 
     2997            if f.getPDField(): 
     2998                self._pdMap[f.getPDField()] = f 
     2999        return pf 
    29683000 
    29693001    def getValueFromParams(self, params, field): 
     
    29733005        return self._pdMap[field] 
    29743006 
    2975     def getValues(self, registrant): 
     3007    def getRegistrantValues(self, registrant): 
    29763008        mg = registrant.getMiscellaneousGroupById(self.getId()) 
    29773009        return dict((name, mg.getResponseItemById(field.getId()).getValue()) for name, field in self._pdMap.iteritems()) 
     
    46074639        if not self.getPayed(): 
    46084640            self.setTotal(total) 
    4609         self.setPersonalData(self.getRegistrationForm().getPersonalDataNew().getValues(self)) 
     4641        self.setPersonalData(self.getRegistrationForm().getPersonalData().getRegistrantValues(self)) 
    46104642        self._complete = True 
    46114643 
  • indico/MaKaC/webinterface/pages/registrants.py

    rbdcdee r9890af  
    18111811        fullName = reg.getFullName() 
    18121812        institution = "" 
    1813         if not self._regForm.getPersonalDataNew().getField("institution").isDisabled(): 
     1813        if not self._regForm.getPersonalData().getField("institution").isDisabled(): 
    18141814            institution = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getInstitution()) or "&nbsp;") 
    18151815        position = "" 
    1816         if not self._regForm.getPersonalDataNew().getField("position").isDisabled(): 
     1816        if not self._regForm.getPersonalData().getField("position").isDisabled(): 
    18171817            position = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getPosition()) or "&nbsp;") 
    18181818        city = "" 
    1819         if not self._regForm.getPersonalDataNew().getField("city").isDisabled(): 
     1819        if not self._regForm.getPersonalData().getField("city").isDisabled(): 
    18201820            city = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getCity()) or "&nbsp;") 
    18211821        country = "" 
    1822         if not self._regForm.getPersonalDataNew().getField("country").isDisabled(): 
     1822        if not self._regForm.getPersonalData().getField("country").isDisabled(): 
    18231823            country = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(CountryHolder().getCountryById(reg.getCountry())) or "&nbsp;") 
    18241824        sessions="" 
  • indico/MaKaC/webinterface/pages/registrationForm.py

    rbdcdee r9890af  
    13151315 
    13161316            toggle = "" 
    1317             if not f.isLocked('disable') and self._generalSection is self._generalSection.getRegistrationForm().getPersonalDataNew(): 
     1317            if not f.isLocked('disable') and self._generalSection is self._generalSection.getRegistrationForm().getPersonalData(): 
    13181318                toggle = """<a href=%s><img src="%s" alt="%s" class="imglink"></a>""" % (quoteattr(str(urlStatus)), img, imgAlt) 
    13191319 
     
    15951595    def _getOtherSectionsHTML(self): 
    15961596        regForm = self._conf.getRegistrationForm() 
    1597         personalDataNew = regForm.getPersonalDataNew() 
     1597        personalData = regForm.getPersonalData() 
    15981598        if self._currentUser is not None and self._currentUser.isRegisteredInConf(self._conf): 
    1599             pdFormValues = personalDataNew.getValuesFromRegistrant(self._currentUser.getRegistrantById(self._conf.getId())) 
     1599            pdFormValues = personalData.getValuesFromRegistrant(self._currentUser.getRegistrantById(self._conf.getId())) 
    16001600        else: 
    1601             pdFormValues = personalDataNew.getValuesFromAvatar(self._currentUser) 
     1601            pdFormValues = personalData.getValuesFromAvatar(self._currentUser) 
    16021602 
    16031603        html=[] 
     
    16541654                miscItem=miscGroup.getResponseItemById(f.getId()) 
    16551655            default = "" 
    1656             if self._generalSection is self._generalSection.getRegistrationForm().getPersonalDataNew(): 
     1656            if self._generalSection is self._generalSection.getRegistrationForm().getPersonalData(): 
    16571657                default = self._pdFormValues.get(f.getPDField(), "") 
    16581658            html.append(""" 
  • indico/MaKaC/webinterface/rh/registrantsModif.py

    rbdcdee r9890af  
    751751        if not self._cancel: 
    752752            params = self._getRequestParams() 
    753             pdForm = self._registrant.getRegistrationForm().getPersonalDataNew() 
     753            pdForm = self._registrant.getRegistrationForm().getPersonalData() 
    754754            if self._miscInfo.getGeneralSection() is pdForm: 
    755755                email = pdForm.getValueFromParams(params, 'email') 
     
    760760                    f.getInput().setResponseValue(self._miscInfo.getResponseItemById(f.getId()), params, self._registrant, self._miscInfo) 
    761761            if self._miscInfo.getGeneralSection() is pdForm: 
    762                 self._registrant.setPersonalData(pdForm.getValues(self._registrant)) 
     762                self._registrant.setPersonalData(pdForm.getRegistrantValues(self._registrant)) 
    763763        self._registrant.updateTotal() 
    764764        self._redirect(urlHandlers.UHRegistrantModification.getURL(self._registrant)) 
  • indico/MaKaC/webinterface/rh/registrationFormDisplay.py

    rbdcdee r9890af  
    141141            return p.display() 
    142142        params = self._getRequestParams() 
    143         email = self._regForm.getPersonalDataNew().getValueFromParams(params, 'email') 
     143        email = self._regForm.getPersonalData().getValueFromParams(params, 'email') 
    144144        if canManageRegistration: 
    145145            matchedUsers = AvatarHolder().match({"email": email}) 
  • indico/MaKaC/webinterface/rh/registrationFormModif.py

    rbdcdee r9890af  
    4949 
    5050    def _process( self ): 
     51        self._conf.getRegistrationForm()._convertPersonalData() 
    5152        p = registrationForm.WPConfModifRegForm( self, self._conf ) 
    5253        return p.display() 
     
    504505 
    505506    def _process( self ): 
    506         pdForm = self._conf.getRegistrationForm().getPersonalDataNew() 
     507        pdForm = self._conf.getRegistrationForm().getPersonalData() 
    507508        field = pdForm.getFieldById(self._personalfield) 
    508509        if field and not field.isLocked('disable'): 
  • indico/MaKaC/webinterface/tpls/ConfRegistrantsList.tpl

    rbdcdee r9890af  
    1717            <tr> 
    1818                <td nowrap class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">${ imgNameTitle }<a href=${ urlNameTitle }>${ _("name")}</a></td> 
    19                 ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgInstitutionTitle +'<a href='+ urlInstitutionTitle +'>'+ _("institution")+'</a></td>' if not regForm.getPersonalDataNew().getField("institution").isDisabled() else ""} 
    20                 ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgPositionTitle +'<a href='+ urlPositionTitle +'>'+ _("position")+'</a></td>' if not regForm.getPersonalDataNew().getField("position").isDisabled() else ""} 
    21                 ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgCityTitle +'<a href='+ urlCityTitle +'>'+ _("city")+'</a></td>' if not regForm.getPersonalDataNew().getField("city").isDisabled() else ""} 
    22                 ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgCountryTitle +'<a href='+ urlCountryTitle +'>'+ _("country/region")+'</a></td>' if not regForm.getPersonalDataNew().getField("country").isDisabled() else ""} 
     19                ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgInstitutionTitle +'<a href='+ urlInstitutionTitle +'>'+ _("institution")+'</a></td>' if not regForm.getPersonalData().getField("institution").isDisabled() else ""} 
     20                ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgPositionTitle +'<a href='+ urlPositionTitle +'>'+ _("position")+'</a></td>' if not regForm.getPersonalData().getField("position").isDisabled() else ""} 
     21                ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgCityTitle +'<a href='+ urlCityTitle +'>'+ _("city")+'</a></td>' if not regForm.getPersonalData().getField("city").isDisabled() else ""} 
     22                ${'<td class="titleCellFormat" style="border-right:5px solid #FFFFFF;border-left:5px solid #FFFFFF;border-bottom: 1px solid #5294CC;">'+ imgCountryTitle +'<a href='+ urlCountryTitle +'>'+ _("country/region")+'</a></td>' if not regForm.getPersonalData().getField("country").isDisabled() else ""} 
    2323                ${ sessionsTitle } 
    2424            </tr> 
Note: See TracChangeset for help on using the changeset viewer.