Changeset bdcdee in indico
- Timestamp:
- 08/15/11 09:31:14 (22 months ago)
- Branches:
- master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 0da0c1403bae8e51d8229f460181c71b9e6dda72
- Children:
- 9890af
- Parents:
- efefcc
- git-author:
- Adrian Moennich <jerome.ernst.monnich@…> (04/29/11 11:13:30)
- git-committer:
- Pedro Ferreira <jose.pedro.ferreira@…> (08/15/11 09:31:14)
- Location:
- indico
- Files:
-
- 16 edited
-
MaKaC/registration.py (modified) (49 diffs)
-
MaKaC/webinterface/pages/registrants.py (modified) (7 diffs)
-
MaKaC/webinterface/pages/registrationForm.py (modified) (19 diffs)
-
MaKaC/webinterface/rh/registrantsModif.py (modified) (2 diffs)
-
MaKaC/webinterface/rh/registrationFormDisplay.py (modified) (4 diffs)
-
MaKaC/webinterface/rh/registrationFormModif.py (modified) (8 diffs)
-
MaKaC/webinterface/tpls/ConfModifRegForm.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfModifRegFormGeneralSectionFieldEdit.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfRegistrantsList.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfRegistrationFormCreationDone.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfRegistrationFormDisplay.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfRegistrationFormModify.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/ConfRegistrationFormPreview.tpl (modified) (1 diff)
-
MaKaC/webinterface/tpls/RegistrantModifMain.tpl (modified) (1 diff)
-
htdocs/confModifRegistrants.py (modified) (2 diffs)
-
htdocs/confModifRegistrationForm.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/registration.py
rd6c8f0 rbdcdee 45 45 46 46 import string 47 from MaKaC.webinterface.common.person_titles import TitlesRegistry 47 48 48 49 PRICE_PATTERN = re.compile(r'^(\d+(?:[\.]\d+)?)$') … … 91 92 #Multiple-Subforms 92 93 self.personalData = PersonalData() 94 self.personalDataNew = PersonalDataForm(self) 93 95 #Simple-SubForms 94 96 self.sessionsForm = SessionsForm() … … 100 102 self._generalSectionGenerator = Counter() 101 103 self.generalSectionForms={} 104 self.addGeneralSectionForm(self.personalDataNew, True) 102 105 #All SortedForms 103 106 self._sortedForms=[] 107 self.addToSortedForms(self.personalDataNew) 104 108 self.addToSortedForms(self.reasonParticipationForm) 105 109 self.addToSortedForms(self.sessionsForm) … … 411 415 return self.personalData 412 416 417 def getPersonalDataNew(self): 418 return self.personalDataNew 419 413 420 def getFurtherInformationForm(self): 414 421 return self.furtherInformation … … 461 468 return self.getGeneralSectionForms().values() 462 469 463 def addGeneralSectionForm(self, gsf ):470 def addGeneralSectionForm(self, gsf, preserveTitle=False): 464 471 id = str(self._getGeneralSectionGenerator().newCount()) 465 472 while self.getGeneralSectionFormById(id) != None: 466 473 id = str(self._getGeneralSectionGenerator().newCount()) 467 474 gsf.setId( id ) 468 gsf.setTitle( _("Miscellaneous information %s")%gsf.getId()) 475 if not preserveTitle: 476 gsf.setTitle( _("Miscellaneous information %s")%gsf.getId()) 469 477 self.generalSectionForms[gsf.getId()]=gsf 470 478 self.addToSortedForms(gsf) … … 709 717 return body 710 718 711 def _getPDInfoText(self, regForm, rp):712 personalData = regForm.getPersonalData()713 sortedKeys = personalData.getSortedKeys()714 text = ""715 for key in sortedKeys:716 pdfield = personalData.getDataItem(key)717 fieldTitle = pdfield.getName()718 fieldValue = ""719 if key == "title":720 fieldValue = rp.getTitle()721 elif key == "firstName":722 fieldValue = rp.getFirstName()723 elif key == "surname":724 fieldValue = rp.getFamilyName()725 elif key == "position":726 fieldValue = rp.getPosition()727 elif key == "institution":728 fieldValue = rp.getInstitution()729 elif key == "address":730 fieldValue = rp.getAddress()731 elif key == "city":732 fieldValue = rp.getCity()733 elif key == "country":734 fieldValue = rp.getCountry()735 elif key == "phone":736 fieldValue = rp.getPhone()737 elif key == "email":738 fieldValue = rp.getEmail()739 elif key == "fax":740 fieldValue = rp.getFax()741 elif key == "personalHomepage":742 fieldValue = rp.getPersonalHomepage()743 if pdfield.isEnabled():744 text += """\n%s: %s""" % (_(fieldTitle), fieldValue)745 return text746 747 719 def createEmailNewRegistrant(self, regForm, rp): 748 720 """ … … 763 735 body = i18nformat(""" 764 736 _("Event"): %s 765 _("Registrant Id"): %s %s737 _("Registrant Id"): %s 766 738 %s 767 739 """) % (url, rp.getId(), \ 768 self._getPDInfoText(regForm, rp), \769 740 self._printAllSections(regForm, rp)) 770 741 … … 1069 1040 return "*genfield*%s-%s"%(self.getParent().getParent().getId(), self.getParent().getId()) 1070 1041 1071 def getModifHTML(self, item, registrant ):1042 def getModifHTML(self, item, registrant, default=""): 1072 1043 """ 1073 1044 Method that display the form web which represents this object. … … 1076 1047 if (item is not None and item.isMandatory())or self.getParent().isMandatory(): 1077 1048 mandatory = """<td class="beforeRegistrationInput" valign="top"><font color="red">*</font></td>""" 1078 return "<table><tr>%s%s</tr></table>"%(mandatory, self._getModifHTML(item, registrant ))1079 1080 def _getModifHTML(self,item, registrant ):1049 return "<table><tr>%s%s</tr></table>"%(mandatory, self._getModifHTML(item, registrant, default)) 1050 1051 def _getModifHTML(self,item, registrant, default=""): 1081 1052 """ 1082 1053 Method that should be overwritten by the classes inheriting from this one in order to display … … 1157 1128 self._length = '' 1158 1129 1159 def _getModifHTML(self, item, registrant):1130 def _getModifHTML(self, item, registrant, default=""): 1160 1131 caption = self._parent.getCaption() 1161 1132 description = self._parent.getDescription() … … 1164 1135 currency=self._parent.getParent().getRegistrationForm().getCurrency() 1165 1136 htmlName=self.getHTMLName() 1166 v= ""1137 v=default 1167 1138 if item is not None: 1168 1139 v=item.getValue() … … 1258 1229 self._length = '' 1259 1230 1260 def _getModifHTML(self, item, registrant ):1231 def _getModifHTML(self, item, registrant, default=""): 1261 1232 caption = self._parent.getCaption() 1262 1233 description = self._parent.getDescription() 1263 1234 htmlName = self.getHTMLName() 1264 1235 1265 v = ""1236 v = default 1266 1237 if item is not None: 1267 1238 v = item.getValue() … … 1352 1323 self._numberOfColumns = '' 1353 1324 1354 def _getModifHTML(self, item, registrant):1325 def _getModifHTML(self, item, registrant, default=""): 1355 1326 caption = self._parent.getCaption() 1356 1327 description = self._parent.getDescription() … … 1359 1330 currency=self._parent.getParent().getRegistrationForm().getCurrency() 1360 1331 htmlName=self.getHTMLName() 1361 v= ""1332 v=default 1362 1333 if item is not None: 1363 1334 v=item.getValue() … … 1478 1449 self._minValue = 0 1479 1450 1480 def _getModifHTML(self,item, registrant ):1451 def _getModifHTML(self,item, registrant, default=""): 1481 1452 caption = self._parent.getCaption() 1482 1453 description = self._parent.getDescription() … … 1485 1456 currency=self._parent.getParent().getRegistrationForm().getCurrency() 1486 1457 htmlName=self.getHTMLName() 1487 v= "0"1458 v=default or "0" 1488 1459 if item is not None: 1489 1460 v=item.getValue() … … 1626 1597 getName=classmethod(getName) 1627 1598 1628 def _getModifHTML(self, item, registrant):1599 def _getModifHTML(self, item, registrant, default=""): 1629 1600 caption = self._parent.getCaption() 1630 1601 description = self._parent.getDescription() … … 1633 1604 currency=self._parent.getParent().getRegistrationForm().getCurrency() 1634 1605 htmlName=self.getHTMLName() 1635 v= ""1606 v=default 1636 1607 if item is not None: 1637 1608 v=item.getValue() … … 1683 1654 getName=classmethod(getName) 1684 1655 1685 def _getModifHTML(self, item, registrant):1656 def _getModifHTML(self, item, registrant, default=""): 1686 1657 disable="" 1687 1658 checked="" … … 1692 1663 currency = self._parent.getParent().getRegistrationForm().getCurrency() 1693 1664 htmlName = self.getHTMLName() 1694 v = ""1665 v = default 1695 1666 quantity = 0 1696 1667 if item is not None: … … 1754 1725 getName=classmethod(getName) 1755 1726 1756 def _getModifHTML(self, item, registrant):1727 def _getModifHTML(self, item, registrant, default=""): 1757 1728 caption = self._parent.getCaption() 1758 1729 description = self._parent.getDescription() … … 1762 1733 htmlName=self.getHTMLName() 1763 1734 caption=self._parent.getCaption() 1764 v= ""1735 v=default 1765 1736 if item is not None: 1766 1737 v=item.getValue() … … 1985 1956 self._defaultItem=None 1986 1957 self._inputType = "radiogroup" 1958 self._emptyCaption = '-- Choose a value --' 1987 1959 1988 1960 def getValues(self): … … 1999 1971 d["defaultItem"]=self.getDefaultItem() 2000 1972 d["inputType"] = self.getInputType() 1973 d["emptyCaption"] = self.getEmptyCaption() 2001 1974 return d 2002 1975 … … 2009 1982 ri=RadioItem(self) 2010 1983 ri.setCaption(c["caption"]) 2011 ri.setBillable(c ["billable"])2012 ri.setPrice(c ["price"])2013 ri.setEnabled(c ["isEnabled"])1984 ri.setBillable(c.get("billable", False)) 1985 ri.setPrice(c.get("price", "")) 1986 ri.setEnabled(c.get("isEnabled", True)) 2014 1987 ri.setPlacesLimit(c.get("placesLimit")) 2015 1988 self.addItem(ri) … … 2018 1991 if data.has_key("inputType"): 2019 1992 self._inputType = data.get("inputType") 1993 if data.has_key("emptyCaption"): 1994 self._emptyCaption = data["emptyCaption"] 2020 1995 2021 1996 def _beforeValueChange(self, item, newItem): … … 2126 2101 return self._radioItemGenerator 2127 2102 2128 def _getRadioGroupModifHTML(self, item, registrant): 2103 def getEmptyCaption(self): 2104 try: 2105 return self._emptyCaption 2106 except: 2107 self._emptyCaption = '-- Choose a value --' 2108 return self._emptyCaption 2109 2110 def _getRadioGroupModifHTML(self, item, registrant, default=""): 2129 2111 caption = self._parent.getCaption() 2130 2112 description = self._parent.getDescription() … … 2132 2114 billable=self._parent.isBillable() 2133 2115 currency=self._parent.getParent().getRegistrationForm().getCurrency() 2134 value = ""2116 value = default 2135 2117 if item is not None: 2136 2118 billable = item.isBillable() … … 2185 2167 return "".join(tmp) 2186 2168 2187 def _getDropDownModifHTML(self, item, registrant ):2169 def _getDropDownModifHTML(self, item, registrant, default=""): 2188 2170 caption = self._parent.getCaption() 2189 2171 description = self._parent.getDescription() 2190 2172 billable = self._parent.isBillable() 2191 2173 currency = self._parent.getParent().getRegistrationForm().getCurrency() 2192 value = ""2174 value = default 2193 2175 if item is not None: 2194 2176 billable = item.isBillable() … … 2211 2193 tmp.append("""<td><select id="%s" name="%s">""" % (self.getHTMLName(), self.getHTMLName())) 2212 2194 2213 tmp.append("""<option value=""> -- Choose a value --</option>""")2195 tmp.append("""<option value="">%s</option>""" % self.getEmptyCaption()) 2214 2196 2215 2197 for radioItem in self.getItemsList(): … … 2244 2226 return "".join(tmp) 2245 2227 2246 def _getModifHTML(self, item, registrant ):2228 def _getModifHTML(self, item, registrant, default=""): 2247 2229 if self.getInputType() == 'radiogroup': 2248 return self._getRadioGroupModifHTML(item, registrant )2230 return self._getRadioGroupModifHTML(item, registrant, default) 2249 2231 else: 2250 return self._getDropDownModifHTML(item, registrant )2232 return self._getDropDownModifHTML(item, registrant, default) 2251 2233 2252 2234 def _setResponseValue(self, item, params, registrant): … … 2378 2360 return CountryHolder().getCountryById(value) 2379 2361 2380 def _getModifHTML(self, item, registrant ):2362 def _getModifHTML(self, item, registrant, default=""): 2381 2363 caption = self._parent.getCaption() 2382 2364 description = self._parent.getDescription() 2383 2365 htmlName = self.getHTMLName() 2384 value = ""2366 value = default 2385 2367 if item is not None: 2386 2368 value = item.getValue() … … 2456 2438 return "_genfield_%s_%s_" % (self.getParent().getParent().getId(), self.getParent().getId()) 2457 2439 2458 def _getModifHTML(self, item, registrant ):2440 def _getModifHTML(self, item, registrant, default=""): 2459 2441 caption = self._parent.getCaption() 2460 2442 description = self._parent.getDescription() … … 2463 2445 htmlName = item.getHTMLName() 2464 2446 else: 2465 date = None2447 date = default or None 2466 2448 htmlName = self.getHTMLName() 2467 2449 … … 2574 2556 self._input.setValues(data) 2575 2557 self._mandatory = False 2558 self._locked = () 2576 2559 self._description = "" 2577 2560 self._billable =False … … 2579 2562 self._placesLimit = 0 2580 2563 self._currentNoPlaces = 0 2564 self._disabled = True 2565 self._pdField = None 2581 2566 else: 2582 self.setValues(data) 2567 self._mandatory = False 2568 self.setValues(data, True) 2583 2569 2584 2570 def clone(self, newsection): … … 2586 2572 return field 2587 2573 2588 def setValues(self, data ):2574 def setValues(self, data, firstTime=False): 2589 2575 caption=data.get("caption","") 2590 2576 if caption=="": 2591 2577 caption= _("General Field") 2592 2578 self.setCaption(caption) 2593 self.setInput(FieldInputs.getAvailableInputKlassById(data.get("input","text"))(self)) 2579 if firstTime or not self.isLocked('input'): 2580 self.setInput(FieldInputs.getAvailableInputKlassById(data.get("input","text"))(self)) 2594 2581 if data.has_key("inputObj"): 2595 2582 self._input.setValues(data["inputObj"].getValues()) 2583 elif data.has_key('inputValues'): 2584 self._input.setValues(data["inputValues"]) 2596 2585 else: 2597 2586 self._input.setValues(data) 2598 self.setMandatory(data.has_key("mandatory") and data["mandatory"]) 2587 if firstTime: 2588 self.setLocked(data.get("lock", ())) 2589 if self.isMandatory() and self.isLocked('mandatory'): 2590 self.setMandatory(True) 2591 else: 2592 self.setMandatory(data.has_key("mandatory") and data["mandatory"]) 2593 if self.isLocked('disable'): 2594 self.setDisabled(False) 2595 else: 2596 self.setDisabled(data.has_key("disabled") and data["disabled"]) 2599 2597 self.setBillable(data.has_key("billable") and data["billable"]) 2600 2598 self.setPrice(data.get("price","")) 2601 2599 self.setPlacesLimit(data.get("placesLimit", "0")) 2602 2600 self.setDescription(data.get("description","")) 2601 if firstTime: 2602 self.setPDField(data.get("pd")) 2603 2603 2604 2604 def getValues(self): … … 2607 2607 values["input"] = self.getInput().getId() 2608 2608 values["inputObj"] = self.getInput() 2609 values["lock"] = self.getLocked() 2609 2610 values["mandatory"] = self.isMandatory() 2611 values["disabled"] = self.isDisabled() 2610 2612 values["billable"]=self.isBillable() 2611 2613 values["price"]=self.getPrice() 2612 2614 values["placesLimit"] = self.getPlacesLimit() 2613 2615 values["description"]=self.getDescription() 2616 values["pd"] = self.getPDField() 2614 2617 return values 2615 2618 2616 2619 def isTemporary(self): 2617 2620 return False 2621 2622 def setPDField(self, v): 2623 self._pdField = v 2624 2625 def getPDField(self): 2626 try: 2627 return self._pdField 2628 except: 2629 self._pdField = None 2630 return self._pdField 2618 2631 2619 2632 def isBillable(self): … … 2728 2741 self._mandatory = v 2729 2742 2743 def getLocked(self): 2744 try: 2745 return self._locked 2746 except: 2747 self._locked = () 2748 return self._locked 2749 2750 def isLocked(self, what): 2751 return what in self.getLocked() 2752 2753 def setLocked(self, v): 2754 self._locked = v 2755 2756 def isDisabled(self): 2757 try: 2758 return self._disabled 2759 except: 2760 self._disabled = False 2761 return self._disabled 2762 2763 def setDisabled(self, v): 2764 self._disabled = v 2765 2730 2766 def getParent(self): 2731 2767 return self._parent … … 2742 2778 class GeneralSectionForm(BaseForm): 2743 2779 2744 def __init__(self, regForm, data=None ):2780 def __init__(self, regForm, data=None, required=False): 2745 2781 BaseForm.__init__(self) 2746 2782 self._regForm=regForm … … 2748 2784 self._title = _("Miscellaneous information") 2749 2785 self._description = "" 2786 self._required = required 2750 2787 2751 2788 ##### … … 2766 2803 self.setTitle(title) 2767 2804 self.setDescription(data.get("description", "")) 2805 if 'required' in data: 2806 self.setRequired(data['required']) 2768 2807 2769 2808 def getValues(self): … … 2772 2811 values["description"] = self.getDescription() 2773 2812 values["enabled"] = self.isEnabled() 2813 values["required"] = self.isRequired() 2774 2814 return values 2775 2815 … … 2779 2819 gsf.setValues(self.getValues()) 2780 2820 gsf.setEnabled(self.isEnabled()) 2821 gsf.setRequired(self.isRequired()) 2781 2822 2782 2823 #Mods to support sorting fields … … 2812 2853 def setDescription(self, n): 2813 2854 self._description = n 2855 2856 def isRequired(self): 2857 try: 2858 return self._required 2859 except: 2860 self._required = False 2861 return False 2862 2863 def setRequired(self, required): 2864 self._required = required 2814 2865 2815 2866 ########### … … 2882 2933 self._p_changed=1 2883 2934 2884 class PersonalDataFormItem(Persistent): 2935 class PersonalDataForm(GeneralSectionForm): 2936 def __init__(self, regForm): 2937 GeneralSectionForm.__init__(self, regForm, {'title': 'Personal Data (New)'}, True) 2938 2939 fields = ( 2940 { 'pd': 'title', 2941 'caption': 'Title', 2942 'input': 'radio', 2943 'inputValues': { 2944 'inputType':'dropdown', 2945 'emptyCaption': '', 2946 'radioitems': [{'caption':title} for title in TitlesRegistry.getList()[1:]] 2947 }, 2948 'lock': ('input', 'delete') 2949 }, 2950 { 'pd':'firstName', 'caption':'First Name', 'mandatory':True, 'lock':('mandatory', 'input', 'delete', 'disable') }, 2951 { 'pd':'surname', 'caption':'Surname', 'mandatory':True, 'lock':('mandatory', 'input', 'delete', 'disable') }, 2952 { 'pd':'position', 'caption':'Position', 'lock':('input', 'delete') }, 2953 { 'pd':'institution', 'caption':'Institution', 'mandatory':True, 'lock':('input', 'delete') }, 2954 { 'pd':'address', 'caption':'Address', 'lock':('input', 'delete') }, 2955 { 'pd':'city', 'caption':'City', 'mandatory':True, 'lock':('input', 'delete') }, 2956 { 'pd':'country', 'caption':'Country', 'input':'country', 'mandatory':True, 'lock':('input', 'delete') }, 2957 { 'pd':'phone', 'caption':'Phone', 'lock':('input', 'delete') }, 2958 { 'pd':'fax', 'caption':'Fax', 'lock':('input', 'delete') }, 2959 { 'pd':'email', 'caption':'Email', 'mandatory':True, 'lock':('mandatory', 'input', 'delete', 'disable') }, 2960 { 'pd':'personalHomepage', 'caption':'Personal homepage', 'lock':('input', 'delete') }, 2961 ) 2962 2963 self._pdMap = {} 2964 for fieldInfo in fields: 2965 field = GeneralField(self, fieldInfo) 2966 self._pdMap[fieldInfo['pd']] = field 2967 self.addToSortedFields(field) 2968 2969 def getValueFromParams(self, params, field): 2970 return params.get(self._pdMap[field].getInput().getHTMLName()) 2971 2972 def getField(self, field): 2973 return self._pdMap[field] 2974 2975 def getValues(self, registrant): 2976 mg = registrant.getMiscellaneousGroupById(self.getId()) 2977 return dict((name, mg.getResponseItemById(field.getId()).getValue()) for name, field in self._pdMap.iteritems()) 2978 2979 def getValuesFromAvatar(self, av): 2980 r = {} 2981 r['title'] = '' 2982 r['firstName'] = '' 2983 r['surname'] = '' 2984 r['institution'] = '' 2985 r['email'] = '' 2986 r['address'] = '' 2987 r['phone'] = '' 2988 r['fax'] = '' 2989 if av is not None: 2990 r['title'] = av.getTitle() 2991 r['firstName'] = av.getFirstName() 2992 r['surname'] = av.getFamilyName() 2993 r['institution'] = av.getOrganisation() 2994 r['email'] = av.getEmail() 2995 r['address'] = av.getAddress() 2996 r['phone'] = av.getTelephone() 2997 faxes = av.getFaxes() 2998 fax = '' 2999 if len(faxes)>0: 3000 fax = faxes[0] 3001 r['fax'] = fax 3002 return r 3003 3004 def getValuesFromRegistrant(self, reg): 3005 r = {} 3006 r['title'] = reg.getTitle() 3007 r['firstName'] = reg.getFirstName() 3008 r['surname'] = reg.getFamilyName() 3009 r['position'] = reg.getPosition() 3010 r['institution'] = reg.getInstitution() 3011 r['address'] = reg.getAddress() 3012 r['city'] = reg.getCity() 3013 r['country'] = reg.getCountry() 3014 r['phone'] = reg.getPhone() 3015 r['fax'] = reg.getFax() 3016 r['email'] = reg.getEmail() 3017 r['personalHomepage'] = reg.getPersonalHomepage() 3018 return r 3019 3020 class PersonalDataFormItem(Persistent): # old 2885 3021 2886 3022 def __init__(self, data=None): … … 4378 4514 self._avatar = av 4379 4515 4380 self.setPersonalData(data)4381 4382 4516 if self.getRegistrationForm().getReasonParticipationForm().isEnabled(): 4383 4517 self.setReasonParticipation(data.get("reason","")) … … 4459 4593 #for f in gs.getFields(): 4460 4594 for f in gs.getSortedFields(): 4461 f.getInput().setResponseValue(mg.getResponseItemById(f.getId()),data, self, mg) 4595 if not f.isDisabled(): 4596 f.getInput().setResponseValue(mg.getResponseItemById(f.getId()),data, self, mg) 4462 4597 for miscItem in mg.getResponseItemList(): 4463 4598 if miscItem.isBillable(): … … 4472 4607 if not self.getPayed(): 4473 4608 self.setTotal(total) 4609 self.setPersonalData(self.getRegistrationForm().getPersonalDataNew().getValues(self)) 4474 4610 self._complete = True 4475 4611 -
indico/MaKaC/webinterface/pages/registrants.py
r34d140 rbdcdee 127 127 128 128 for fld in sect.getSortedFields(): 129 self._dispopts[sect.getId()].append("%s-%s"%(sect.getId(),fld.getId())) 129 if not fld.getPDField(): 130 self._dispopts[sect.getId()].append("%s-%s"%(sect.getId(),fld.getId())) 130 131 131 132 def _getKeyDispOpts(self, value): … … 187 188 # columns["%s-%s"%(sect.getId(),fld.getId())]=fld.getCaption() 188 189 for fld in sect.getSortedFields(): 189 columns["%s-%s"%(sect.getId(),fld.getId())]=fld.getCaption() 190 if not fld.getPDField(): 191 columns["%s-%s"%(sect.getId(),fld.getId())]=fld.getCaption() 190 192 # jmf-end 191 193 ############ … … 1241 1243 <td align="left" valign="top">%s</td> 1242 1244 </tr> 1243 <tr><td> </td></tr>1244 1245 """%(f.getCaption(), v)) 1245 1246 if miscGroup is not None: … … 1252 1253 <td align="left">%s <font color="red">(cancelled)</font></td> 1253 1254 </tr> 1254 <tr><td> </td></tr>1255 1255 """) %(miscItem.getCaption(), self._getItemValueDisplay(miscItem)) ) 1256 1256 if len(html)==1: … … 1347 1347 if self._registrant.getRegistrationDate() is not None: 1348 1348 vars["registrationDate"] = "%s (%s)"%(self._registrant.getAdjustedRegistrationDate().strftime("%d-%B-%Y %H:%M"), self._conf.getTimezone()) 1349 vars["dataModificationURL"] = quoteattr(str(urlHandlers.UHRegistrantDataModification.getURL(self._registrant)))1350 1349 vars["sections"] = self._getFormSections() 1351 1350 vars["statuses"]=self._getStatusesHTML() 1352 1351 1353 1352 vars["transaction"]=self._getTransactionHTML() 1354 return vars1355 1356 class WPRegistrantDataModification( WPRegistrantModifMain ):1357 1358 def _getTabContent( self, params ):1359 wc = WRegistrantDataModification(self._registrant)1360 return wc.getHTML()1361 1362 class WRegistrantDataModification( wcomponents.WTemplated ):1363 1364 def __init__( self, registrant ):1365 self._registrant = registrant1366 self._conf = self._registrant.getConference()1367 1368 def _getItemHTML(self, item, value):1369 inputHTML = ""1370 if item.getInput() == "list":1371 if item.getId() == "title":1372 for title in TitlesRegistry().getList():1373 selected = ""1374 if value == title:1375 selected = "selected"1376 inputHTML += """<option value="%s" %s>%s</option>"""%(title, selected, title)1377 inputHTML = """<select name="%s">%s</select>"""%(item.getId(), inputHTML)1378 elif item.getId() == "country":1379 for ck in CountryHolder().getCountrySortedKeys():1380 selected = ""1381 if value == ck:1382 selected = "selected"1383 inputHTML += """<option value="%s" %s>%s</option>"""%(ck, selected, CountryHolder().getCountryById(ck))1384 inputHTML = """<select name="%s">%s</select>"""%(item.getId(), inputHTML)1385 else:1386 input = item.getInput()1387 if item.getId() == "email":1388 input = "text"1389 inputHTML = """<input type="%s" name="%s" size="40" value="%s">"""%(input, item.getId(), value)1390 mandatory=" "1391 if item.isMandatory():1392 mandatory = """<font color="red">* </font>"""1393 html = """1394 <tr>1395 <td nowrap class="titleCellTD">%s<span class="titleCellFormat">%s</span></td>1396 <td width="100%%" align="left" bgcolor="white" class="blacktext">%s</td>1397 </tr>1398 """%(mandatory, item.getName(), inputHTML)1399 return html1400 1401 def getVars( self ):1402 vars = wcomponents.WTemplated.getVars( self )1403 personalData = self._conf.getRegistrationForm().getPersonalData()1404 data = []1405 sortedKeys = personalData.getSortedKeys()1406 formValues = personalData.getValuesFromRegistrant(self._registrant)1407 for key in sortedKeys:1408 item = personalData.getDataItem(key)1409 data.append(self._getItemHTML(item, formValues.get(item.getId(), "")))1410 vars["data"] = "".join(data)1411 vars["postURL"] = quoteattr(str(urlHandlers.UHRegistrantPerformDataModification.getURL(self._registrant)))1412 1353 return vars 1413 1354 … … 1725 1666 #for f in self._miscGroup.getGeneralSection().getFields(): 1726 1667 for f in self._miscGroup.getGeneralSection().getSortedFields(): 1668 if f.isDisabled(): 1669 continue 1727 1670 # jmf-start 1728 1671 ############ … … 1868 1811 fullName = reg.getFullName() 1869 1812 institution = "" 1870 if self._regForm.getPersonalData().getDataItem("institution").isEnabled():1813 if not self._regForm.getPersonalDataNew().getField("institution").isDisabled(): 1871 1814 institution = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getInstitution()) or " ") 1872 1815 position = "" 1873 if self._regForm.getPersonalData().getDataItem("position").isEnabled():1816 if not self._regForm.getPersonalDataNew().getField("position").isDisabled(): 1874 1817 position = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getPosition()) or " ") 1875 1818 city = "" 1876 if self._regForm.getPersonalData().getDataItem("city").isEnabled():1819 if not self._regForm.getPersonalDataNew().getField("city").isDisabled(): 1877 1820 city = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(reg.getCity()) or " ") 1878 1821 country = "" 1879 if self._regForm.getPersonalData().getDataItem("country").isEnabled():1822 if not self._regForm.getPersonalDataNew().getField("country").isDisabled(): 1880 1823 country = """<td valign="top" class="abstractDataCell">%s</td>"""%(self.htmlText(CountryHolder().getCountryById(reg.getCountry())) or " ") 1881 1824 sessions="" -
indico/MaKaC/webinterface/pages/registrationForm.py
rd6c8f0 rbdcdee 109 109 return urlHandlers.UHConfModifRegFormGeneralSection.getURL(sect) 110 110 111 def _getPersonalFieldsHTML(self):112 regForm=self._conf.getRegistrationForm()113 html=[]114 enabledBulb = Configuration.Config.getInstance().getSystemIconURL( "enabledSection" )115 notEnabledBulb = Configuration.Config.getInstance().getSystemIconURL( "disabledSection" )116 enabledText = "Click to disable"117 disabledText = "Click to enable"118 keys = regForm.getPersonalData().getSortedKeys()119 for key in keys:120 pdfield = regForm.getPersonalData().getDataItem(key)121 urlStatus = urlHandlers.UHConfModifRegFormEnablePersonalField.getURL(self._conf)122 urlStatus.addParam("personalfield", pdfield.getId())123 img = enabledBulb124 text = enabledText125 if not pdfield.isEnabled():126 img = notEnabledBulb127 text = disabledText128 urlSwitch = urlHandlers.UHConfModifRegFormSwitchPersonalField.getURL(self._conf)129 urlSwitch.addParam("personalfield", pdfield.getId())130 switch = "optional"131 if pdfield.isMandatory():132 switch = "mandatory"133 if pdfield.getId() not in ["email","firstName","surname"]:134 html.append("""135 <tr>136 <td><a href=%s><img src="%s" alt="%s" class="imglink"></a></td><td> %s</td><td> <a href="%s">%s</a></td>137 </tr>138 """%(quoteattr(str(urlStatus)), img, text, pdfield.getName(), urlSwitch, switch) )139 else:140 html.append("""141 <tr>142 <td></td><td> %s</td><td> %s</td>143 </tr>144 """%(pdfield.getName(), switch) )145 146 html.insert(0, """<table>""")147 html.append("</table>")148 return "".join(html)149 150 151 111 def _getSectionsHTML(self): 152 112 regForm=self._conf.getRegistrationForm() … … 166 126 text = disabledText 167 127 checkbox=" " 168 if isinstance(gs, registration.GeneralSectionForm) :128 if isinstance(gs, registration.GeneralSectionForm) and not gs.isRequired(): 169 129 checkbox=""" 170 130 <input type="checkbox" name="sectionsIds" value="%s"> … … 178 138 selbox += """ 179 139 </select>""" 140 if not isinstance(gs, registration.GeneralSectionForm) or not gs.isRequired(): 141 toggleLink = """<a href=%s><img src="%s" alt="%s" class="imglink"></a>""" % (quoteattr(str(urlStatus)), img, text) 142 else: 143 toggleLink = "" 180 144 html.append(""" 181 145 <tr> 182 <td> 183 <a href=%s><img src="%s" alt="%s" class="imglink"></a> %s %s<a href=%s>%s</a> 184 </td> 146 <td>%s</td> 147 <td>%s %s<a href=%s>%s</a></td> 185 148 </tr> 186 """%( quoteattr(str(urlStatus)), img, text, selbox, checkbox, quoteattr(str(urlModif)), gs.getTitle()) )149 """%(toggleLink, selbox, checkbox, quoteattr(str(urlModif)), gs.getTitle()) ) 187 150 html.insert(0, """<input type="hidden" name="oldpos"><table>""") 188 151 html.append("</table>") … … 290 253 vars["Currency"]="" 291 254 vars["sections"] = self._getSectionsHTML() 292 vars["personalfields"] = self._getPersonalFieldsHTML()293 255 vars["actionSectionURL"]=quoteattr(str(urlHandlers.UHConfModifRegFormActionSection.getURL(self._conf))) 294 256 vars["statuses"] = self._getStatusesHTML() … … 1306 1268 def _getGeneralFieldsHTML(self): 1307 1269 html=[] 1270 enabledBulb = Configuration.Config.getInstance().getSystemIconURL("enabledSection") 1271 notEnabledBulb = Configuration.Config.getInstance().getSystemIconURL("disabledSection") 1272 enabledText = "Click to disable" 1273 disabledText = "Click to enable" 1308 1274 ############## 1309 1275 #jmf-start … … 1336 1302 </select>""" 1337 1303 1304 chkbox = "" 1305 if not f.isLocked('delete'): 1306 chkbox = """<input type="checkbox" name="fieldsIds" value="%s">""" % f.getId() 1307 1308 urlStatus = urlHandlers.UHConfModifRegFormEnablePersonalField.getURL(self._conf) 1309 urlStatus.addParam("personalfield", f.getId()) 1310 img = enabledBulb 1311 imgAlt = enabledText 1312 if f.isDisabled(): 1313 img = notEnabledBulb 1314 imgAlt = disabledText 1315 1316 toggle = "" 1317 if not f.isLocked('disable') and self._generalSection is self._generalSection.getRegistrationForm().getPersonalDataNew(): 1318 toggle = """<a href=%s><img src="%s" alt="%s" class="imglink"></a>""" % (quoteattr(str(urlStatus)), img, imgAlt) 1319 1338 1320 html.append("""<tr> 1339 <td align="left" style="padding-left:10px">%s< input type="checkbox" name="fieldsIds" value="%s"><a href=%s>%s</a>%s</td>1321 <td align="left" style="padding-left:10px">%s</td><td>%s</td><td>%s</td><td><a href=%s>%s</a>%s</td> 1340 1322 </tr> 1341 """%( selbox,f.getId(), url, self.htmlText(f.getCaption()),spec) )1323 """%(toggle, selbox, chkbox, url, self.htmlText(f.getCaption()),spec) ) 1342 1324 #"""%(f.getId(), url, f.getCaption(),spec) ) 1343 1325 html.insert(0,"""<a href="" name="sections"></a><input type="hidden" name="oldpos"><table align="left">""") … … 1389 1371 1390 1372 def _getFieldTypesHTML(self): 1391 html=["""<select name="input" onchange="javascript:$E('WConfModifRegFormGeneralSectionFieldEdit').dom.submit(); $E('submitButton').dom.disabled=true; $E('cancelButton').dom.disabled=true;">"""] 1373 disabled = "" 1374 if self._generalField and self._generalField.isLocked('input'): 1375 disabled = """ disabled="disabled""" 1376 html=["""<select name="input" onchange="javascript:$E('WConfModifRegFormGeneralSectionFieldEdit').dom.submit(); $E('submitButton').dom.disabled=true; $E('cancelButton').dom.disabled=true;"%s>""" % disabled] 1392 1377 keylist=registration.FieldInputs.getAvailableInputKeys() 1393 1378 keylist.sort() … … 1408 1393 vars["description"] = "" 1409 1394 vars["mandatory"] = """ checked="checked" """ 1395 vars["mandatoryLocked"] = False 1410 1396 #vars["billable"]= """ checked="checked" """ 1411 1397 #vars["price"]="" … … 1416 1402 if not self._generalField.isMandatory(): 1417 1403 vars["mandatory"] = "" 1404 vars["mandatoryLocked"] = self._generalField.isLocked('mandatory') 1418 1405 #if not self._generalField.isBillable(): 1419 1406 # vars["billable"] = "" … … 1590 1577 self._conf = conf 1591 1578 1592 def _getWComp(self, sect ):1579 def _getWComp(self, sect, pdFormValues): 1593 1580 if sect == self._conf.getRegistrationForm().getReasonParticipationForm(): 1594 1581 return WConfRegFormReasonParticipationDisplay(self._conf, self._currentUser) … … 1604 1591 if sect == self._conf.getRegistrationForm().getSocialEventForm(): 1605 1592 return WConfRegFormSocialEventDisplay(self._conf, self._currentUser) 1606 return WConfRegFormGeneralSectionDisplay(sect, self._currentUser )1593 return WConfRegFormGeneralSectionDisplay(sect, self._currentUser, pdFormValues) 1607 1594 1608 1595 def _getOtherSectionsHTML(self): 1609 regForm=self._conf.getRegistrationForm() 1596 regForm = self._conf.getRegistrationForm() 1597 personalDataNew = regForm.getPersonalDataNew() 1598 if self._currentUser is not None and self._currentUser.isRegisteredInConf(self._conf): 1599 pdFormValues = personalDataNew.getValuesFromRegistrant(self._currentUser.getRegistrantById(self._conf.getId())) 1600 else: 1601 pdFormValues = personalDataNew.getValuesFromAvatar(self._currentUser) 1602 1610 1603 html=[] 1611 1604 for gs in regForm.getSortedForms(): 1612 wcomp=self._getWComp(gs )1605 wcomp=self._getWComp(gs, pdFormValues) 1613 1606 if gs.isEnabled(): 1614 1607 html.append( """ … … 1629 1622 vars["title"] = regForm.getTitle() 1630 1623 vars["postURL"] = quoteattr(str(urlHandlers.UHConfRegistrationFormCreation.getURL(self._conf))) 1631 vars["personalData"] = WConfRegFormPersonalDataDisplay(self._conf, self._currentUser).getHTML()1632 1624 vars["otherSections"]=self._getOtherSectionsHTML() 1633 1625 return vars … … 1644 1636 class WConfRegFormGeneralSectionDisplay(wcomponents.WTemplated): 1645 1637 1646 def __init__(self, gs, currentUser ):1638 def __init__(self, gs, currentUser, pdFormValues=None): 1647 1639 self._generalSection = gs 1648 1640 self._currentUser = currentUser 1641 self._pdFormValues = pdFormValues 1649 1642 1650 1643 def _getFieldsHTML(self, miscGroup=None): … … 1655 1648 #jmf 1656 1649 for f in self._generalSection.getSortedFields(): 1650 if f.isDisabled(): 1651 continue 1657 1652 miscItem=None 1658 1653 if miscGroup is not None and miscGroup.getResponseItemById(f.getId()) is not None: 1659 1654 miscItem=miscGroup.getResponseItemById(f.getId()) 1655 default = "" 1656 if self._generalSection is self._generalSection.getRegistrationForm().getPersonalDataNew(): 1657 default = self._pdFormValues.get(f.getPDField(), "") 1660 1658 html.append(""" 1661 1659 <tr> … … 1664 1662 </td> 1665 1663 </tr> 1666 """%(f.getInput().getModifHTML(miscItem, registrant )) )1664 """%(f.getInput().getModifHTML(miscItem, registrant, default)) ) 1667 1665 return "".join(html) 1668 1666 … … 1677 1675 vars["fields"]=self._getFieldsHTML(miscGroup) 1678 1676 return vars 1677 1679 1678 1680 1679 class WConfRegFormPersonalDataDisplay(wcomponents.WTemplated): … … 1743 1742 vars["data"] = "".join(data) 1744 1743 return vars 1744 1745 1745 1746 1746 class WConfRegFormReasonParticipationDisplay(wcomponents.WTemplated): … … 2493 2493 return "".join(html) 2494 2494 2495 def _getPDInfoHTML(self):2496 personalData = self._conf.getRegistrationForm().getPersonalData()2497 sortedKeys = personalData.getSortedKeys()2498 html = ""2499 for key in sortedKeys:2500 pdfield = personalData.getDataItem(key)2501 fieldTitle = pdfield.getName()2502 fieldValue = ""2503 if key == "title":2504 fieldValue = self.htmlText( self._registrant.getTitle() )2505 elif key == "firstName":2506 fieldValue = self.htmlText( self._registrant.getFirstName() )2507 elif key == "surname":2508 fieldValue = self.htmlText( self._registrant.getFamilyName() )2509 elif key == "position":2510 fieldValue = self.htmlText( self._registrant.getPosition() )2511 elif key == "institution":2512 fieldValue = self.htmlText( self._registrant.getInstitution() )2513 elif key == "address":2514 fieldValue = self.htmlText( self._registrant.getAddress() )2515 elif key == "city":2516 fieldValue = self.htmlText( self._registrant.getCity() )2517 elif key == "country":2518 fieldValue = self.htmlText( self._registrant.getCountry() )2519 elif key == "phone":2520 fieldValue = self.htmlText( self._registrant.getPhone() )2521 elif key == "email":2522 fieldValue = self.htmlText( self._registrant.getEmail() )2523 elif key == "fax":2524 fieldValue = self.htmlText( self._registrant.getFax() )2525 elif key == "personalHomepage":2526 fieldValue = self.htmlText( self._registrant.getPersonalHomepage() )2527 if pdfield.isEnabled():2528 html += """2529 <tr>2530 <td style="color:black"><b>%s</b></td>2531 <td bgcolor="white" class="blacktext">%s</td>2532 </tr>""" % (fieldTitle,fieldValue)2533 return html2534 2535 2495 def _getFormSections(self): 2536 2496 sects = [] … … 2556 2516 vars["pdfields"] = self._getPDInfoHTML() 2557 2517 vars["registrationDate"] = i18nformat("""--_("date unknown")--""") 2518 2558 2519 if self._registrant.getRegistrationDate() is not None: 2559 2520 vars["registrationDate"] = self._registrant.getAdjustedRegistrationDate().strftime("%d-%B-%Y %H:%M") 2560 vars["dataModificationURL"] = quoteattr(str(urlHandlers.UHRegistrantDataModification.getURL(self._registrant)))2561 2521 vars["otherSections"] = self._getFormSections() 2562 2522 vars["paymentInfo"] = self._getPaymentInfo() -
indico/MaKaC/webinterface/rh/registrantsModif.py
r2cf43b4 rbdcdee 461 461 return p.display() 462 462 463 class RHRegistrantDataModification( RHRegistrantModifBase ):464 465 def _process( self ):466 p = registrants.WPRegistrantDataModification( self, self._registrant )467 return p.display()468 469 463 class RHRegistrantSendEmail( RHRegistrationFormModifBase ): 470 464 … … 756 750 def _process( self ): 757 751 if not self._cancel: 758 params=self._getRequestParams() 752 params = self._getRequestParams() 753 pdForm = self._registrant.getRegistrationForm().getPersonalDataNew() 754 if self._miscInfo.getGeneralSection() is pdForm: 755 email = pdForm.getValueFromParams(params, 'email') 756 if self._conf.hasRegistrantByEmail(email, self._registrant): 757 raise FormValuesError("""There is already a user with the email "%s". Please choose another one""" % email) 759 758 for f in self._miscInfo.getGeneralSection().getSortedFields(): 760 f.getInput().setResponseValue(self._miscInfo.getResponseItemById(f.getId()),params, self._registrant, self._miscInfo) 759 if not f.isDisabled(): 760 f.getInput().setResponseValue(self._miscInfo.getResponseItemById(f.getId()), params, self._registrant, self._miscInfo) 761 if self._miscInfo.getGeneralSection() is pdForm: 762 self._registrant.setPersonalData(pdForm.getValues(self._registrant)) 761 763 self._registrant.updateTotal() 762 764 self._redirect(urlHandlers.UHRegistrantModification.getURL(self._registrant)) -
indico/MaKaC/webinterface/rh/registrationFormDisplay.py
r6bbcc8 rbdcdee 122 122 RHBaseRegistrationForm._checkParams(self, params) 123 123 self._regForm = self._conf.getRegistrationForm() 124 pd = self._regForm.getPersonalData()125 keys = pd.getMandatoryItems()126 for key in keys:127 if key not in params.keys() or params.get(key,"").strip() == "":128 raise FormValuesError("The field \"%s\" is mandatory and you must fill it in order to register"%(pd.getData()[key].getName()))129 124 # SESSIONS 130 125 sessionForm = self._regForm.getSessionsForm() … … 146 141 return p.display() 147 142 params = self._getRequestParams() 148 149 matchedUsers = AvatarHolder().match({"email": params["email"]}) 150 if matchedUsers: 151 user = matchedUsers[0] 143 email = self._regForm.getPersonalDataNew().getValueFromParams(params, 'email') 144 if canManageRegistration: 145 matchedUsers = AvatarHolder().match({"email": email}) 146 if matchedUsers: 147 user = matchedUsers[0] 148 else: 149 user = None 152 150 else: 153 151 user = None … … 161 159 return p.display() 162 160 if user is None: 163 if self._conf.hasRegistrantByEmail( self._getRequestParams().get("email","")):164 raise FormValuesError("There is already a user with the email \"%s\". Please choose another one"% self._getRequestParams().get("email","--no email--"))161 if self._conf.hasRegistrantByEmail(email): 162 raise FormValuesError("There is already a user with the email \"%s\". Please choose another one"%email) 165 163 else: 166 164 if user.isRegisteredInConf(self._conf): … … 169 167 if self._conf.hasRegistrantByEmail(user.getEmail()): 170 168 raise FormValuesError("You have already registered with the email address \"%s\". If you need to modify your registration, please contact the managers of the conference."%self._getUser().getEmail()) 169 elif self._conf.hasRegistrantByEmail(email): 170 raise FormValuesError("There is already a user with the email \"%s\". Please choose another one"%email) 171 171 rp = registration.Registrant() 172 172 self._conf.addRegistrant(rp) -
indico/MaKaC/webinterface/rh/registrationFormModif.py
rd0809f rbdcdee 492 492 section = self._conf.getRegistrationForm().getSectionById(self._section) 493 493 if section is not None: 494 section.setEnabled(not section.isEnabled()) 494 if not isinstance(section, GeneralSectionForm) or not section.isRequired(): 495 section.setEnabled(not section.isEnabled()) 495 496 self._redirect(str(urlHandlers.UHConfModifRegForm.getURL(self._conf)) + "#sections", True) 496 497 … … 503 504 504 505 def _process( self ): 505 pdfield = self._conf.getRegistrationForm().getPersonalData().getDataItem(self._personalfield) 506 if pdfield is not None: 507 pdfield.setEnabled(not pdfield.isEnabled()) 508 url = str(urlHandlers.UHConfModifRegForm.getURL(self._conf)) + "#personalfields" 506 pdForm = self._conf.getRegistrationForm().getPersonalDataNew() 507 field = pdForm.getFieldById(self._personalfield) 508 if field and not field.isLocked('disable'): 509 field.setDisabled(not field.isDisabled()) 510 url = urlHandlers.UHConfModifRegFormGeneralSection.getURL(pdForm) 509 511 self._redirect(url, True) 510 512 511 512 class RHRegistrationFormModifSwitchPersonalField( RHRegistrationFormModifBase ):513 514 def _checkParams( self, params ):515 RHRegistrationFormModifBase._checkParams( self, params )516 self._personalfield = params.get("personalfield", "")517 518 def _process( self ):519 pdfield = self._conf.getRegistrationForm().getPersonalData().getDataItem(self._personalfield)520 if pdfield is not None:521 pdfield.setMandatory(not pdfield.isMandatory())522 url = str(urlHandlers.UHConfModifRegForm.getURL(self._conf)) + "#personalfields"523 self._redirect(url, True)524 513 525 514 … … 573 562 if self._confirm: 574 563 for sect in self._sections: 575 self._conf.getRegistrationForm().removeGeneralSectionForm(sect) 564 if not sect.isRequired(): 565 self._conf.getRegistrationForm().removeGeneralSectionForm(sect) 576 566 else: 577 567 return registrationForm.WPConfModifRegFormGeneralSectionRemConfirm( self._rh, self._conf, self.sects).display() … … 619 609 if type(self._fields) == type('string'): 620 610 field = self._gsf.getFieldById(self._fields) 621 self._gsf.removeField(field) 611 if not field.isLocked('delete'): 612 self._gsf.removeField(field) 622 613 elif self._fields is not None: 623 614 for fieldID in self._fields: 624 615 field = self._gsf.getFieldById(fieldID) 625 self._gsf.removeField(field) 616 if not field.isLocked('delete'): 617 self._gsf.removeField(field) 626 618 627 619 … … 660 652 self._caption="" 661 653 self._mandatory="" 654 self._locked = () 662 655 self._description="" 663 656 self._input=None … … 668 661 self._caption=generalField.getCaption() 669 662 self._mandatory=generalField.isMandatory() 663 self._locked = generalField.getLocked() 670 664 self._description = generalField.getDescription() 671 665 self._input=generalField.getInput().clone(self) … … 683 677 d['placesLimit']=self.getPlacesLimit() 684 678 685 if self.isMandatory() :679 if self.isMandatory() and not self.isLocked('mandatory'): 686 680 d['mandatory']='True' 687 681 if self.isBillable(): 688 682 d['billable']='True' 689 d['input']=self.getInput().getId() 683 if not self.isLocked('input'): 684 d['input']=self.getInput().getId() 690 685 d.update(self.getInput().getValues()) 691 686 return d … … 805 800 return None 806 801 802 def isLocked(self, what): 803 return what in self._locked 804 805 807 806 class RHRegistrationFormModifGeneralSectionFieldAdd( RHRegistrationFormModifGeneralSectionBase ): 808 807 -
indico/MaKaC/webinterface/tpls/ConfModifRegForm.tpl
rc0de5a rbdcdee 115 115 <tr> 116 116 <td class="dataCaptionTD"> 117 <a name="personalfields"></a>118 <span class="dataCaptionFormat">${ _("Personal Data")}</span>119 <br/>120 <br/>121 <img src=${ enablePic } alt="${ _("Click to disable")}"> <small>${ _("Enabled field") }</small>122 <br/>123 <img src=${ disablePic } alt="${ _("Click to enable")}"> <small>${ _("Disabled field") }</small>124 </td>125 <td class="blacktext" style="padding-left:20px">126 ${ personalfields }127 </td>128 <td>129 </td>130 </tr>131 <tr>132 <td colspan="3" class="horizontalLine"> </td>133 </tr>134 <tr>135 <td class="dataCaptionTD">136 117 <a name="sections"></a> 137 118 <span class="dataCaptionFormat">${ _("Sections of the form")}</span> -
indico/MaKaC/webinterface/tpls/ConfModifRegFormGeneralSectionFieldEdit.tpl
rc0de5a rbdcdee 61 61 <td class="titleCellTD"><span class="titleCellFormat"> ${ _("Mandatory field")}</span></td> 62 62 <td bgcolor="white" class="blacktext" width="100%"> 63 <input type="checkbox" name="mandatory" size="60" ${ mandatory } > ( ${ _("uncheck if it is not a mandatory field")})63 <input type="checkbox" name="mandatory" size="60" ${ mandatory } ${ 'disabled="disabled"' if mandatoryLocked else '' }> ( ${ _("uncheck if it is not a mandatory field")}) 64 64 </td> 65 65 </tr> -
indico/MaKaC/webinterface/tpls/ConfRegistrantsList.tpl
rc0de5a rbdcdee 17 17 <tr> 18 18 <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 regForm.getPersonalData().getDataItem("institution").isEnabled() 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 regForm.getPersonalData().getDataItem("position").isEnabled() 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 regForm.getPersonalData().getDataItem("city").isEnabled() 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 regForm.getPersonalData().getDataItem("country").isEnabled() 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.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 ""} 23 23 ${ sessionsTitle } 24 24 </tr> -
indico/MaKaC/webinterface/tpls/ConfRegistrationFormCreationDone.tpl
rc0de5a rbdcdee 41 41 <td bgcolor="white">${ id }</td> 42 42 </tr> 43 ${ pdfields }44 43 <tr> 45 44 <td style="color:black"><b>${ _("Registration date")}</b></td> -
indico/MaKaC/webinterface/tpls/ConfRegistrationFormDisplay.tpl
rc0de5a rbdcdee 46 46 <td><br></td> 47 47 </tr> 48 <tr>49 <td>50 ${ personalData }51 </td>52 </tr>53 48 ${ otherSections } 54 49 <tr> -
indico/MaKaC/webinterface/tpls/ConfRegistrationFormModify.tpl
rc0de5a rbdcdee 41 41 <td><br></td> 42 42 </tr> 43 <tr>44 <td>45 ${ personalData }46 </td>47 </tr>48 43 ${ otherSections } 49 44 <tr> -
indico/MaKaC/webinterface/tpls/ConfRegistrationFormPreview.tpl
rc0de5a rbdcdee 20 20 <td><br></td> 21 21 </tr> 22 <tr>23 <td>24 ${ personalData }25 </td>26 </tr>27 22 ${ otherSections } 28 23 <tr> -
indico/MaKaC/webinterface/tpls/RegistrantModifMain.tpl
rc0de5a rbdcdee 6 6 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Registrant ID")}</span></td> 7 7 <td bgcolor="white">${ id }</td> 8 <form action=${ dataModificationURL } method="POST">9 <td rowspan="14" valign="bottom" align="right" width="1%"><input type="submit" class="btn" value="${ _("modify")}"></td>10 </form>11 </tr>12 <tr>13 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Title")}</span></td>14 <td bgcolor="white" class="blacktext">${ title }</td>15 </tr>16 <tr>17 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Family Name")}</span></td>18 <td bgcolor="white" class="blacktext"><b>${ familyName }</b></td>19 </tr>20 <tr>21 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("First Name")}</span></td>22 <td bgcolor="white" class="blacktext">${ firstName }</td>23 </tr>24 <tr>25 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Position")}</span></td>26 <td bgcolor="white" class="blacktext">${ position }</td>27 </tr>28 <tr>29 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Institution")}</span></td>30 <td bgcolor="white" class="blacktext">${ institution }</td>31 </tr>32 <tr>33 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Address")}</span></td>34 <td bgcolor="white" class="blacktext">${ address }</td>35 </tr>36 <tr>37 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("City")}</span></td>38 <td bgcolor="white" class="blacktext">${ city }</td>39 </tr>40 <tr>41 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Country")}</span></td>42 <td bgcolor="white" class="blacktext">${ country }</td>43 </tr>44 <tr>45 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Phone")}</span></td>46 <td bgcolor="white" class="blacktext">${ phone }</td>47 </tr>48 <tr>49 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Fax")}</span></td>50 <td bgcolor="white" class="blacktext">${ fax }</td>51 </tr>52 <tr>53 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Email")}</span></td>54 <td bgcolor="white" class="blacktext">${ email }</td>55 </tr>56 <tr>57 <td class="dataCaptionTD"><span class="dataCaptionFormat"> ${ _("Personal Homepage")}</span></td>58 <td bgcolor="white" class="blacktext">${ personalHomepage }</td>59 8 </tr> 60 9 <tr> -
indico/htdocs/confModifRegistrants.py
rbdd862 rbdcdee 35 35 return registrantsModif.RHRegistrantModification( req ).process( params ) 36 36 37 def dataModification(req, **params):38 return registrantsModif.RHRegistrantDataModification( req ).process( params )39 40 def performDataModification(req, **params):41 return registrantsModif.RHRegistrantPerformDataModification( req ).process( params )42 43 37 def getPDF(req, **params): 44 38 return registrantsModif.RHRegistrantListPDF( req ).process( params ) … … 52 46 def modifyTransaction(req, **params): 53 47 return registrantsModif.RHRegistrantTransactionModify( req ).process( params ) 54 48 55 49 def peformModifyTransaction (req, **params): 56 50 return registrantsModif.RHRegistrantTransactionPerformModify( req ).process( params ) -
indico/htdocs/confModifRegistrationForm.py
r4b2050 rbdcdee 124 124 return registrationFormModif.RHRegistrationFormModifEnablePersonalField( req ).process( params ) 125 125 126 def switchPersonalField(req, **params):127 return registrationFormModif.RHRegistrationFormModifSwitchPersonalField( req ).process( params )128 129 126 def modifySocialEventItem(req, **params): 130 127 return registrationFormModif.RHRegistrationFormSocialEventItemModify( req ).process( params )
Note: See TracChangeset
for help on using the changeset viewer.
