q2rad 0.1.217__py3-none-any.whl → 0.1.219__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of q2rad might be problematic. Click here for more details.

q2rad/q2appselector.py CHANGED
@@ -97,7 +97,7 @@ class Q2AppSelect(Q2Form):
97
97
  "Database",
98
98
  gridlabel=_("Data storage"),
99
99
  datatype="char",
100
- datalen=100,
100
+ datalen=255,
101
101
  )
102
102
  self.add_control(
103
103
  "select_data_storage_file",
@@ -142,7 +142,7 @@ class Q2AppSelect(Q2Form):
142
142
  "Database",
143
143
  gridlabel="Logic storage",
144
144
  datatype="char",
145
- datalen=100,
145
+ datalen=255,
146
146
  )
147
147
  self.add_control(
148
148
  "select_app_storage_file",
q2rad/q2forms.py CHANGED
@@ -17,7 +17,7 @@ from q2db.cursor import Q2Cursor
17
17
 
18
18
  from q2gui.q2model import Q2CursorModel
19
19
 
20
- from q2gui.q2dialogs import q2mess
20
+ from q2gui.q2dialogs import q2mess, q2ask
21
21
  from q2gui import q2app
22
22
 
23
23
  from q2rad.q2lines import Q2Lines
@@ -288,6 +288,7 @@ class Q2Forms(Q2Form, Q2_save_and_run):
288
288
  super().after_crud_save()
289
289
  if self.crud_mode != "EDIT":
290
290
  if self.s.form_table:
291
+ ai = "*" if q2ask("Set AUTOINCREMENT for primary key?") else ""
291
292
  self.db.insert(
292
293
  "lines",
293
294
  {
@@ -298,7 +299,7 @@ class Q2Forms(Q2Form, Q2_save_and_run):
298
299
  "datatype": "int",
299
300
  "migrate": "*",
300
301
  "pk": "*",
301
- "ai": "*",
302
+ "ai": ai,
302
303
  },
303
304
  )
304
305
  self.db.insert(
q2rad/q2queries.py CHANGED
@@ -17,7 +17,7 @@ from q2db.cursor import Q2Cursor
17
17
  from q2gui.q2model import Q2CursorModel, Q2Model
18
18
  from q2gui.q2widget import Q2Widget
19
19
  from q2gui.q2app import Q2Actions
20
- from q2rad.q2utils import q2cursor, Q2_save_and_run
20
+ from q2rad.q2utils import q2cursor, Q2_save_and_run, num
21
21
  from q2gui.q2utils import set_dict_default
22
22
  import json
23
23
  import gettext
@@ -245,6 +245,18 @@ class Q2QueryList(Q2Form):
245
245
  self.model.readonly = False
246
246
  self.last_current_row = -1
247
247
 
248
+ def after_form_show(self):
249
+ if self.crud_mode != "EDIT":
250
+ start_value = self.r.name
251
+ while True:
252
+ _pkvalue_list = re.split(r"([^\d]+)", start_value)
253
+ _base = "".join(_pkvalue_list[:-1])
254
+ _suffix = num(_pkvalue_list[-1]) + 1
255
+ start_value = f"{_base}{_suffix}"
256
+ if start_value not in [row["name"] for row in self.model.records]:
257
+ break
258
+ self.s.name = start_value
259
+
248
260
  def set_content(self, content):
249
261
  self.model.reset()
250
262
  for x in content:
q2rad/q2raddb.py CHANGED
@@ -168,3 +168,8 @@ def rollback(q2_db=None):
168
168
 
169
169
  def today():
170
170
  return datetime.date.today()
171
+
172
+
173
+ def ensure_empty_pk(table="", row={}, q2_db=None):
174
+ q2_db = get_default_db(q2_db)
175
+ q2_db.ensure_empty_pk(table, row)
q2rad/q2reports.py CHANGED
@@ -153,12 +153,20 @@ class Q2RadReport(Q2Report):
153
153
  co = 0
154
154
  name, ext = os.path.splitext(rez_name)
155
155
  while True:
156
- lockfile = f"{os.path.dirname(rez_name)}/.~lock.{os.path.basename(rez_name)}#"
157
- if os.path.isfile(lockfile):
158
- co += 1
159
- rez_name = f"{name}{co:03d}{ext}"
160
- else:
161
- break
156
+ if os.path.isfile(rez_name):
157
+ try:
158
+ os.remove(rez_name)
159
+ except Exception as e:
160
+ co += 1
161
+ rez_name = f"{name}{co:03d}{ext}"
162
+ continue
163
+ # lockfile = f"{os.path.dirname(rez_name)}/.~lock.{os.path.basename(rez_name)}#"
164
+ # if os.path.isfile(lockfile):
165
+ # co += 1
166
+ # rez_name = f"{name}{co:03d}{ext}"
167
+ # else:
168
+ # break
169
+ break
162
170
  return rez_name
163
171
 
164
172
  def data_start(self):
q2rad/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.217"
1
+ __version__ = "0.1.219"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: q2rad
3
- Version: 0.1.217
3
+ Version: 0.1.219
4
4
  Summary: RAD - database, GUI, reports
5
5
  Author: Andrei Puchko
6
6
  Author-email: andrei.puchko@gmx.de
@@ -2,24 +2,24 @@ q2rad/__init__.py,sha256=Y0Up-UTXOmCYC9llNmTF10CpDDgF2kv10pyHT3-YwmQ,183
2
2
  q2rad/__main__.py,sha256=zP4JARM-FzFHM-vWLehx7c5N4v4m_F-TuMobCdFzr4Q,824
3
3
  q2rad/q2actions.py,sha256=eExRvOSyLhT_v1XCR-DmLEhQ9g_LRkrlyXnwDCjT0LM,8258
4
4
  q2rad/q2appmanager.py,sha256=o5j4bBz5wTVYn8Dot10HS_O1uyDEyzydOpz0NCxUHKI,19522
5
- q2rad/q2appselector.py,sha256=wS945hPfugCcxoEuRWm8nP1849Slw90CrRYgMhBB4nI,18811
5
+ q2rad/q2appselector.py,sha256=-QazsbpOxRlzuCZZ35QU-p9iiBrF16oDU-Os-5rPIRQ,18811
6
6
  q2rad/q2constants.py,sha256=dQtN4OMvZw0FATDAFYjolI7eGMVUnNnbTl6qM-ggZ4I,3416
7
7
  q2rad/q2extensions.py,sha256=PclrX3vPgqwjQIOqiKrRiJaBvhWlCjDUmmxvnF0FLwc,5281
8
- q2rad/q2forms.py,sha256=z8YO2uLXf1QxmlDe099IenfWtUl0olW3a1U4uay8kgc,11030
8
+ q2rad/q2forms.py,sha256=36NriEUquuF97fkHpBBQyw1PDIrBQQlwxb21YVrmtng,11117
9
9
  q2rad/q2lines.py,sha256=KQslxn06vypKSFahCDAa7oFPoo_BhvABTKy5iDEOFbc,19133
10
10
  q2rad/q2make.py,sha256=wXoyBUwf2zaAl9JjWDCbjAteUElRq0O7ippyaMY9eug,6476
11
11
  q2rad/q2market.py,sha256=RNXTNv-fFUgbzBGhHPNXlzGjsAHAtz71BRbTErJarNo,2641
12
12
  q2rad/q2modules.py,sha256=FetB84IxsuDzNYKTFM3BdvfH5GrWrFKoi6cV5uW1fKo,4360
13
13
  q2rad/q2packages.py,sha256=y72L1RAw1OgtKGaL8lJ1KHIaers5I6kTZSiphwwrY0M,3808
14
- q2rad/q2queries.py,sha256=RaNQMZaJy97Hcj_iNzSgHkCbM2s-J-vNaW7IyBFFbCc,12602
14
+ q2rad/q2queries.py,sha256=l9SJ_T5Y38p23xa505EPZocCEmFw_a2y4ck0_-AHVP0,13119
15
15
  q2rad/q2rad.py,sha256=--C8iBgUlOxDHCVjsf6E1rbDIW3oRZ_cIufksiaeV8U,51838
16
- q2rad/q2raddb.py,sha256=8cQcByBQoROwInPNA3bEy8INxTg6rPixbyle4QY4WU8,4555
17
- q2rad/q2reports.py,sha256=zVQbBoXHcdSPhoGlayzdoZ0b1qrRbafM6r1wP2VP0B4,84480
16
+ q2rad/q2raddb.py,sha256=tMX971d_awTwiWeYLkZGSfdrIs88oiNHBAs2cMFvSbU,4685
17
+ q2rad/q2reports.py,sha256=1fewf1Zlz98raqTIWlRLIg-zTCYA2flGVqyIC120UEU,84802
18
18
  q2rad/q2stylesettings.py,sha256=rEJLyLzsffJEXnMbg9bPB3KHLjYfw-49QgrtcYOfGV0,4769
19
19
  q2rad/q2utils.py,sha256=Vb5K8Lbb7PzQGDiBEHFrPyDcytVnUSVXy9yIkvWM1Oc,19734
20
- q2rad/version.py,sha256=HuDeLxbAxYJMq9H9bSODRQmDLvi7yQmRIrpEz_DvSEQ,23
21
- q2rad-0.1.217.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
22
- q2rad-0.1.217.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
23
- q2rad-0.1.217.dist-info/METADATA,sha256=kfyl8SBIH8wgiuTkEukZWBEGIhDt_PQKFir8yfOPp_U,3369
24
- q2rad-0.1.217.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
25
- q2rad-0.1.217.dist-info/RECORD,,
20
+ q2rad/version.py,sha256=oVgRTA3VUYJNe8a3a2qNCC9nbYyeVwJmTF9d4EbOWMo,23
21
+ q2rad-0.1.219.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
22
+ q2rad-0.1.219.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
23
+ q2rad-0.1.219.dist-info/METADATA,sha256=4Kh5XxHBz9DfsFf0CidLrhFxMyNu3R6SRd8ViNkobyM,3369
24
+ q2rad-0.1.219.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
25
+ q2rad-0.1.219.dist-info/RECORD,,