[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9354 - trunk/gnue-forms/src/input/displayHandlers
From: |
johannes |
Subject: |
[gnue] r9354 - trunk/gnue-forms/src/input/displayHandlers |
Date: |
Tue, 6 Feb 2007 08:19:08 -0600 (CST) |
Author: johannes
Date: 2007-02-06 08:19:08 -0600 (Tue, 06 Feb 2007)
New Revision: 9354
Modified:
trunk/gnue-forms/src/input/displayHandlers/datehandler.py
Log:
Added autocompletion for datetime fields
Modified: trunk/gnue-forms/src/input/displayHandlers/datehandler.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/datehandler.py 2007-02-06
14:05:20 UTC (rev 9353)
+++ trunk/gnue-forms/src/input/displayHandlers/datehandler.py 2007-02-06
14:19:08 UTC (rev 9354)
@@ -265,7 +265,7 @@
kw = {}
for index, item in enumerate(values):
value = int(item)
- part = self._order[index].lower()
+ part = self._order[index]
# If the year is given without a century we will figure out
# which one to use.
@@ -288,7 +288,7 @@
# mask.
if display.isdigit() and len(display) == 8:
for item in self._order:
- if item.lower() == 'year':
+ if item == 'year':
year = int(display[:4])
display = display[4:]
elif item == 'month':
@@ -314,7 +314,7 @@
def _autocomplete_(self, new_text, new_cursor):
# We do not autocomplete dates starting with the year
- if self._order[0].lower() == 'year':
+ if self._order[0] == 'year':
return new_text, new_cursor
today = datetime.date.today().strftime(str(self._input_mask))
@@ -597,7 +597,7 @@
kw = {}
for index, item in enumerate(values):
value = int(item)
- part = self._order[index].lower()
+ part = self._order[index]
# If the year is given without a century we will figure out
# which one to use.
@@ -620,7 +620,7 @@
# mask.
if display.isdigit() and len(display) == 8:
for item in self._order:
- if item.lower() == 'year':
+ if item == 'year':
year = int(display[:4])
display = display[4:]
elif item == 'month':
@@ -648,7 +648,7 @@
kw = {}
for index, item in enumerate(values):
value = int(item)
- part = self._order[index].lower()
+ part = self._order[index]
# If the year is given without a century we will figure out
# which one to use.
@@ -734,3 +734,52 @@
# Does not seem to fit any pattern
raise InvalidTimeLiteral, display
+
+ # -------------------------------------------------------------------------
+ # Autocompletion of a datetime value
+ # -------------------------------------------------------------------------
+
+ def _autocomplete_(self, new_text, new_cursor):
+
+ # We do not autocomplete dates starting with the year
+ if self._order[0] == 'year':
+ return new_text, new_cursor
+
+ today = datetime.date.today().strftime(str(self._input_mask))
+
+ # If the text is a number it must be the first component
+ if new_text.isdigit():
+ if len(new_text) > 2:
+ new_text = new_text[:2] + self._inter[0] + new_text[2:]
+ new_cursor += 1
+ new_text += self._inter[1] + "%s" % datetime.date.today().year
+
+ elif self._order[0] != 'month':
+ new_text = new_text + today[today.index(self._inter[0]):]
+
+ return new_text, new_cursor
+
+ else:
+ parts = new_text.split(self._inter[0], 1)
+ if len(parts) <> 2:
+ return new_text, new_cursor
+
+ lead = parts[0] + self._inter[0]
+ rest = parts[1]
+ # If we have nothing after the first intersection symbol, we have
+ # to complete the rest
+ if not rest:
+ if self._order[0] <> 'month':
+ new_text = parts[0] + today[today.index(self._inter[0]):]
+ return new_text, new_cursor
+
+ parts = rest.split(self._inter[1], 1)
+ # If we have the first and the second component, stick it together
+ if len(parts) == 1:
+ lead += parts[0]
+ new_cursor = len(lead)
+ new_text = lead + today[today.rindex(self._inter[1]):]
+
+ return new_text, new_cursor
+
+ return new_text, new_cursor
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9354 - trunk/gnue-forms/src/input/displayHandlers,
johannes <=