Index: main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- main/waeup.kofa/trunk/CHANGES.txt	(revision 14583)
+++ main/waeup.kofa/trunk/CHANGES.txt	(revision 14584)
@@ -5,5 +5,5 @@
 =======================
 
-* Simplify configuration of maximum credits.
+* Simplify configuration of maximum or minimum total credits.
 
 * Add `outstanding` attribute to course tickets.
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 14583)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 14584)
@@ -146,7 +146,7 @@
     ticket.automatic = False
     ticket.carry_over = False
-    max_credits = students_utils.maxCreditsExceeded(view.context, course)
-    if max_credits:
-        view.flash(_('Total credits exceeded.'), type="warning")
+    warning = students_utils.warnCreditsOOR(view.context, course)
+    if warning:
+        view.flash(warning, type="warning")
         return False
     try:
@@ -2732,7 +2732,7 @@
             return
         students_utils = getUtility(IStudentsUtils)
-        max_credits = students_utils.maxCreditsExceeded(self.context)
-        if max_credits:
-            self.flash(_('Maximum credits exceeded.'), type="warning")
+        warning = students_utils.warnCreditsOOR(self.context)
+        if warning:
+            self.flash(warning, type="warning")
             return
         msg = self.context.course_registration_forbidden
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 14583)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 14584)
@@ -154,6 +154,7 @@
         """
 
-    def maxCreditsExceeded(studylevel, course=None):
-        """Return True if maximum credits is exceeded.
+    def warnCreditsOOR(studylevel, course=None):
+        """Return message if credits are out of range. In the base
+        package only maximum credits is set.
         """
 
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 14583)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 14584)
@@ -824,5 +824,5 @@
         self.browser.getControl("Add course ticket").click()
         self.assertMatches(
-            '...Total credits exceeded...', self.browser.contents)
+            '...Maximum credits exceeded...', self.browser.contents)
         self.course.credits = 10
         self.browser.getControl("Add course ticket").click()
@@ -2510,5 +2510,5 @@
         self.browser.getControl("Add course ticket").click()
         self.assertMatches(
-            '...Total credits exceeded...', self.browser.contents)
+            '...Maximum credits exceeded...', self.browser.contents)
         self.course.credits = 10
         self.browser.getControl("Add course ticket").click()
@@ -2605,5 +2605,5 @@
         # Carryover COURSE1 in level 200 already has 10 credits
         self.assertMatches(
-            '...Total credits exceeded...', self.browser.contents)
+            '...Maximum credits exceeded...', self.browser.contents)
         # If COURSE1 is outstanding, its credits won't be considered
         self.student['studycourse']['200']['COURSE1'].outstanding = True
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 14583)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 14584)
@@ -1010,11 +1010,12 @@
         return pdf_stream
 
-    def maxCreditsExceeded(self, studylevel, course=None):
-        """Return True if maximum credits is exceeded.
+    def warnCreditsOOR(self, studylevel, course=None):
+        """Return message if credits are out of range. In the base
+        package only maximum credits is set.
         """
         if course and studylevel.total_credits + course.credits > 50:
-            return True
+            return _('Maximum credits exceeded.')
         elif studylevel.total_credits > 50:
-            return True
+            return _('Maximum credits exceeded.')
         return False
 
