|
57 | 57 | # roundup modules |
58 | 58 | from roundup import hyperdb, date, password, roundupdb, security, support |
59 | 59 | from roundup.hyperdb import String, Password, Date, Interval, Link, \ |
60 | | - Multilink, DatabaseError, Boolean, Number, Node |
| 60 | + Multilink, DatabaseError, Boolean, Number, Integer, Node |
61 | 61 | from roundup.backends import locking |
62 | 62 | from roundup.i18n import _ |
63 | 63 |
|
@@ -464,6 +464,7 @@ def reindex(self, classname=None, show_progress=False): |
464 | 464 | hyperdb.Password : 'VARCHAR(255)', |
465 | 465 | hyperdb.Boolean : 'BOOLEAN', |
466 | 466 | hyperdb.Number : 'REAL', |
| 467 | + hyperdb.Integer : 'INTEGER', |
467 | 468 | } |
468 | 469 |
|
469 | 470 | def hyperdb_to_sql_datatype(self, propclass): |
@@ -871,6 +872,7 @@ def clear(self): |
871 | 872 | hyperdb.Password : str, |
872 | 873 | hyperdb.Boolean : lambda x: x and 'TRUE' or 'FALSE', |
873 | 874 | hyperdb.Number : lambda x: x, |
| 875 | + hyperdb.Integer : lambda x: x, |
874 | 876 | hyperdb.Multilink : lambda x: x, # used in journal marshalling |
875 | 877 | } |
876 | 878 |
|
@@ -1084,6 +1086,7 @@ def setnode(self, classname, nodeid, values, multilink_changes={}): |
1084 | 1086 | hyperdb.Password : lambda x: password.Password(encrypted=x), |
1085 | 1087 | hyperdb.Boolean : _bool_cvt, |
1086 | 1088 | hyperdb.Number : _num_cvt, |
| 1089 | + hyperdb.Integer : int, |
1087 | 1090 | hyperdb.Multilink : lambda x: x, # used in journal marshalling |
1088 | 1091 | } |
1089 | 1092 |
|
@@ -1632,6 +1635,12 @@ def create_inner(self, **propvalues): |
1632 | 1635 | except ValueError: |
1633 | 1636 | raise TypeError('new property "%s" not numeric'%key) |
1634 | 1637 |
|
| 1638 | + elif value is not None and isinstance(prop, Integer): |
| 1639 | + try: |
| 1640 | + int(value) |
| 1641 | + except ValueError: |
| 1642 | + raise TypeError('new property "%s" not integer'%key) |
| 1643 | + |
1635 | 1644 | elif value is not None and isinstance(prop, Boolean): |
1636 | 1645 | try: |
1637 | 1646 | int(value) |
@@ -1931,6 +1940,12 @@ def set_inner(self, nodeid, **propvalues): |
1931 | 1940 | except ValueError: |
1932 | 1941 | raise TypeError('new property "%s" not numeric'%propname) |
1933 | 1942 |
|
| 1943 | + elif value is not None and isinstance(prop, Integer): |
| 1944 | + try: |
| 1945 | + int(value) |
| 1946 | + except ValueError: |
| 1947 | + raise TypeError('new property "%s" not integer'%propname) |
| 1948 | + |
1934 | 1949 | elif value is not None and isinstance(prop, Boolean): |
1935 | 1950 | try: |
1936 | 1951 | int(value) |
|
0 commit comments