Ignore:
Timestamp:
14 Jun 2012, 08:08:27 (12 years ago)
Author:
Henrik Bettermann
Message:

Merged with r8720.

Location:
main/waeup.aaue/trunk/src/waeup/aaue
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.aaue/trunk/src/waeup/aaue

  • main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py

    r8711 r8723  
    3030    StudentBaseEditFormPage, StudentPersonalEditFormPage,
    3131    OnlinePaymentDisplayFormPage, OnlinePaymentAddFormPage,
    32     OnlinePaymentBreadcrumb, ExportPDFPaymentSlipPage)
     32    OnlinePaymentBreadcrumb, ExportPDFPaymentSlipPage,
     33    StudentFilesUploadPage, emit_lock_message)
    3334from waeup.kofa.students.viewlets import (
    34     PaymentReceiptActionButton)
     35    PaymentReceiptActionButton, StudentPassportActionButton)
    3536from waeup.aaue.students.interfaces import (
    3637    ICustomStudentBase, ICustomStudent, ICustomStudentPersonal,
     
    3839    ICustomStudentOnlinePayment,
    3940    )
     41from waeup.kofa.students.workflow import ADMITTED
    4042from waeup.aaue.interfaces import MessageFactory as _
    4143
     
    207209#        note = translate(_(
    208210#            u"""<br /><br /><br />
    209 #The tranzaction code for eTranzact payments is <strong>${a}</strong>.""",
     211#The tranzaction code is <strong>${a}</strong>.""",
    210212#            mapping = {'a':tcode}))
    211213#        return note
     214
     215class StudentPassportActionButton(StudentPassportActionButton):
     216
     217    @property
     218    def target_url(self):
     219        slip = getUtility(IExtFileStore).getFileByContext(
     220            self.context, 'application_slip')
     221        if self.context.state != ADMITTED or slip is not None:
     222            return ''
     223        return self.view.url(self.view.context, self.target)
     224
     225class CustomStudentFilesUploadPage(StudentFilesUploadPage):
     226    """ View to upload passport picture.
     227
     228    Students are not allowed to change the picture if they
     229    passed the regular Kofa application.
     230    """
     231
     232    def update(self):
     233        slip = getUtility(IExtFileStore).getFileByContext(
     234            self.context, 'application_slip')
     235        if self.context.state != ADMITTED or slip is not None:
     236            emit_lock_message(self)
     237            return
     238        super(StudentFilesUploadPage, self).update()
     239        return
  • main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py

    r8677 r8723  
    1919import shutil
    2020import tempfile
     21from StringIO import StringIO
    2122from hurry.workflow.interfaces import IWorkflowState
    2223from zope.component.hooks import setSite, clearSite
     
    2627from waeup.kofa.students.tests.test_browser import StudentsFullSetup
    2728from waeup.kofa.testing import FunctionalTestCase
     29from waeup.kofa.interfaces import (
     30    IExtFileStore, IFileStoreNameChooser)
    2831from waeup.kofa.students.batching import StudentProcessor
    2932from waeup.kofa.students.interfaces import IStudentsUtils
     
    287290        self.browser.getControl(name="form.password").value = 'spwd'
    288291        self.browser.getControl("Login").click()
     292        # Even in state admitted students can't change the portait if
     293        # application slip exists.
     294        IWorkflowState(self.student).setState('admitted')
     295        self.browser.open(self.student_path)
     296        self.assertTrue('Change portrait' in self.browser.contents)
     297        file_store = getUtility(IExtFileStore)
     298        applicant_slip = 'My application slip'
     299        file_id = IFileStoreNameChooser(self.student).chooseName(
     300            attr="application_slip.pdf")
     301        file_store.createFile(file_id, StringIO(applicant_slip))
     302        self.browser.open(self.student_path)
     303        self.assertFalse('Change portrait' in self.browser.contents)
     304        self.browser.open(self.student_path + '/change_portrait')
     305        self.assertTrue('The requested form is locked' in self.browser.contents)
    289306        # Student can view and edit clearance data
    290307        self.browser.getLink("Clearance Data").click()
Note: See TracChangeset for help on using the changeset viewer.