James McCool commited on
Commit
9d65b2e
·
1 Parent(s): b301954

Fixing database queries to return only valid showdown lineups

Browse files
Files changed (2) hide show
  1. app.py +0 -3
  2. database_queries.py +42 -42
app.py CHANGED
@@ -600,7 +600,6 @@ except:
600
  nhl_slate_names_fd = []
601
  nhl_slate_name_lookup_fd = {}
602
 
603
- # Memory optimization helper functions
604
  def chunk_name_matching(portfolio_names, csv_names, ignore_rename, chunk_size=1000):
605
  """Process name matching in chunks to reduce memory usage"""
606
  portfolio_match_dict = {}
@@ -1782,11 +1781,9 @@ if selected_tab == 'Projections Management':
1782
  portfolio_players = set(get_portfolio_names(portfolio_df))
1783
  projection_players = set(projections_editor_df['player_names'].tolist())
1784
 
1785
- # Find missing players
1786
  missing_players = portfolio_players - projection_players
1787
 
1788
  if missing_players:
1789
- # Create rows for missing players using map_dict data
1790
  missing_rows = []
1791
  for player in missing_players:
1792
  missing_rows.append({
 
600
  nhl_slate_names_fd = []
601
  nhl_slate_name_lookup_fd = {}
602
 
 
603
  def chunk_name_matching(portfolio_names, csv_names, ignore_rename, chunk_size=1000):
604
  """Process name matching in chunks to reduce memory usage"""
605
  portfolio_match_dict = {}
 
1781
  portfolio_players = set(get_portfolio_names(portfolio_df))
1782
  projection_players = set(projections_editor_df['player_names'].tolist())
1783
 
 
1784
  missing_players = portfolio_players - projection_players
1785
 
1786
  if missing_players:
 
1787
  missing_rows = []
1788
  for player in missing_players:
1789
  missing_rows.append({
database_queries.py CHANGED
@@ -246,18 +246,18 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat
246
  # Combine all player conditions with $or
247
  if query_conditions:
248
  filter_query = {'$or': query_conditions}
249
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
250
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
251
  else:
252
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
253
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
254
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
255
  else:
256
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
257
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
258
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
259
  else:
260
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
261
  raw_display = pd.DataFrame(list(cursor))
262
 
263
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
@@ -416,18 +416,18 @@ def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat
416
  # Combine all player conditions with $or
417
  if query_conditions:
418
  filter_query = {'$or': query_conditions}
419
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
420
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
421
  else:
422
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
423
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
424
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
425
  else:
426
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
427
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
428
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
429
  else:
430
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
431
  raw_display = pd.DataFrame(list(cursor))
432
 
433
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
@@ -647,18 +647,18 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat
647
  # Combine all player conditions with $or
648
  if query_conditions:
649
  filter_query = {'$or': query_conditions}
650
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
651
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
652
  else:
653
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
654
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
655
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
656
  else:
657
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
658
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
659
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
660
  else:
661
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
662
  raw_display = pd.DataFrame(list(cursor))
663
 
664
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
@@ -812,18 +812,18 @@ def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat
812
  # Combine all player conditions with $or
813
  if query_conditions:
814
  filter_query = {'$or': query_conditions}
815
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
816
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
817
  else:
818
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
819
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
820
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
821
  else:
822
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
823
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
824
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
825
  else:
826
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
827
  raw_display = pd.DataFrame(list(cursor))
828
 
829
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
@@ -1041,18 +1041,18 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat
1041
  # Combine all player conditions with $or
1042
  if query_conditions:
1043
  filter_query = {'$or': query_conditions}
1044
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1045
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1046
  else:
1047
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1048
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1049
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1050
  else:
1051
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1052
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1053
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1054
  else:
1055
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
1056
  raw_display = pd.DataFrame(list(cursor))
1057
 
1058
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
@@ -1206,18 +1206,18 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat
1206
  # Combine all player conditions with $or
1207
  if query_conditions:
1208
  filter_query = {'$or': query_conditions}
1209
- cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1210
- cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1211
  else:
1212
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1213
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1214
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1215
  else:
1216
- cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1217
- cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1218
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1219
  else:
1220
- cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num)
1221
  raw_display = pd.DataFrame(list(cursor))
1222
 
1223
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
246
  # Combine all player conditions with $or
247
  if query_conditions:
248
  filter_query = {'$or': query_conditions}
249
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
250
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
251
  else:
252
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
253
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
254
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
255
  else:
256
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
257
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
258
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
259
  else:
260
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
261
  raw_display = pd.DataFrame(list(cursor))
262
 
263
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
416
  # Combine all player conditions with $or
417
  if query_conditions:
418
  filter_query = {'$or': query_conditions}
419
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
420
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
421
  else:
422
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
423
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
424
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
425
  else:
426
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
427
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
428
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
429
  else:
430
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
431
  raw_display = pd.DataFrame(list(cursor))
432
 
433
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
647
  # Combine all player conditions with $or
648
  if query_conditions:
649
  filter_query = {'$or': query_conditions}
650
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
651
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
652
  else:
653
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
654
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
655
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
656
  else:
657
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
658
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
659
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
660
  else:
661
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
662
  raw_display = pd.DataFrame(list(cursor))
663
 
664
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
812
  # Combine all player conditions with $or
813
  if query_conditions:
814
  filter_query = {'$or': query_conditions}
815
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
816
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
817
  else:
818
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
819
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
820
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
821
  else:
822
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
823
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
824
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
825
  else:
826
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
827
  raw_display = pd.DataFrame(list(cursor))
828
 
829
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
1041
  # Combine all player conditions with $or
1042
  if query_conditions:
1043
  filter_query = {'$or': query_conditions}
1044
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1045
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1046
  else:
1047
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1048
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1049
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1050
  else:
1051
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1052
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1053
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1054
  else:
1055
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
1056
  raw_display = pd.DataFrame(list(cursor))
1057
 
1058
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
 
1206
  # Combine all player conditions with $or
1207
  if query_conditions:
1208
  filter_query = {'$or': query_conditions}
1209
+ cursor1 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1210
+ cursor2 = collection.find(filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1211
  else:
1212
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1213
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1214
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1215
  else:
1216
+ cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).limit(math.ceil(lineup_num * (prio_mix / 100)))
1217
+ cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
1218
  raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
1219
  else:
1220
+ cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}, {'Team_count': {'$gte': 1}}).sort(prio_var, -1).limit(lineup_num)
1221
  raw_display = pd.DataFrame(list(cursor))
1222
 
1223
  raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])