uprawnienia do stacji i usuwanie firm
This commit is contained in:
+6
-2
@@ -371,7 +371,10 @@ def stations_sync():
|
||||
@api.put('/stations/<int:station_id>')
|
||||
@role_required('boss','admin')
|
||||
def update_station(station_id):
|
||||
s=FuelStationCompany.query.get_or_404(station_id);d=payload();region=(d.get('selected_region') or '').strip().lower()
|
||||
s=FuelStationCompany.query.get_or_404(station_id);d=payload()
|
||||
region=None
|
||||
if 'selected_region' in d:
|
||||
region=(d.get('selected_region') or '').strip().lower()
|
||||
if region and region not in s.region_list:return fail('Wybrane województwo nie występuje w danych tej firmy')
|
||||
try:
|
||||
company_id=int(d.get('company_id') or current_user.company_id or 0)
|
||||
@@ -379,7 +382,8 @@ def update_station(station_id):
|
||||
return fail('Nieprawidłowa firma')
|
||||
settings=CompanySettings.query.get_or_404(company_id)
|
||||
if current_user.role=='boss' and current_user.company_id!=settings.id:return fail('Brak uprawnień',403)
|
||||
s.selected_region=region;s.active=boolv(d,'active');allowed=boolv(d,'allowed')
|
||||
if region is not None: s.selected_region=region
|
||||
s.active=boolv(d,'active');allowed=boolv(d,'allowed')
|
||||
if allowed and s not in settings.allowed_stations: settings.allowed_stations.append(s)
|
||||
if not allowed and s in settings.allowed_stations: settings.allowed_stations.remove(s)
|
||||
db.session.commit();socketio.emit('app_changed',{'resource':'stations','company_id':settings.id});return response(station_dict(s),f'Zapisano ustawienia stacji dla firmy {settings.name}')
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<td>{% if s.station_count > 1 %}<button type="button" class="btn btn-link link-body-emphasis fw-semibold p-0 text-start station-points-open" data-station-id="{{s.id}}" data-station-name="{{s.display_name}}">{{s.display_name}}</button>{% else %}<strong>{{s.display_name}}</strong>{% endif %}{% if s.company_name != s.display_name %}<div class="small text-body-secondary">{{s.company_name}}</div>{% endif %}<div class="small text-body-secondary">NIP: {{s.nip or '—'}} · REGON: {{s.regon or '—'}}</div></td>
|
||||
<td>{{s.station_count}}</td>
|
||||
<td><div class="d-flex gap-1 flex-wrap">{% if s.has_petrol %}<span class="badge text-bg-secondary">benzyna</span>{% endif %}{% if s.has_diesel %}<span class="badge text-bg-secondary">diesel</span>{% endif %}{% if s.has_lpg %}<span class="badge text-bg-secondary">LPG</span>{% endif %}</div></td>
|
||||
<td><form method="post" action="/api/stations/{{s.id}}" data-method="PUT" class="ajax-form row g-2">{% if current_user.role == 'admin' %}<div class="col-12"><label class="form-label small mb-1">Firma</label><select class="form-select form-select-sm station-inline-company-select" name="company_id" data-station-context="1">{% for item in companies %}<option value="{{item.id}}" {% if item.id == company.id %}selected{% endif %}>{{item.name}}</option>{% endfor %}</select></div>{% else %}<input type="hidden" name="company_id" value="{{ company.id }}">{% endif %}<div class="col-12"><label class="form-label small mb-1">Województwo LPG</label><select class="form-select form-select-sm" name="selected_region"><option value="">Domyślne województwo firmy</option>{% for region in s.region_list %}<option value="{{region}}" {% if s.selected_region==region %}selected{% endif %}>{{region}}</option>{% endfor %}</select></div><div class="col-12"><div class="form-check"><input class="form-check-input" type="checkbox" name="active" id="active-{{s.id}}" {% if s.active %}checked{% endif %}><label class="form-check-label" for="active-{{s.id}}">Pokazuj w propozycjach</label></div><div class="form-check"><input class="form-check-input" type="checkbox" name="allowed" id="allowed-{{s.id}}" {% if s.id in allowed_ids %}checked{% endif %}><label class="form-check-label" for="allowed-{{s.id}}">Dodaj do zamkniętej listy firmy</label></div></div><div class="col-12 d-flex gap-2"><button class="btn btn-primary btn-sm">Zapisz</button><button type="button" class="btn btn-secondary btn-sm station-favorite-toggle" data-url="/api/companies/{{company.id}}/favorite-stations/{{s.id}}/toggle">{% if s.id in favorite_ids %}Usuń z ulubionych{% else %}Dodaj do ulubionych{% endif %}</button></div></form></td>
|
||||
<td><form method="post" action="/api/stations/{{s.id}}" data-method="PUT" class="ajax-form row g-2"><input type="hidden" name="company_id" value="{{ company.id }}"><div class="col-12"><div class="form-check"><input class="form-check-input" type="checkbox" name="active" id="active-{{s.id}}" {% if s.active %}checked{% endif %}><label class="form-check-label" for="active-{{s.id}}">Pokazuj w propozycjach</label></div><div class="form-check"><input class="form-check-input" type="checkbox" name="allowed" id="allowed-{{s.id}}" {% if s.id in allowed_ids %}checked{% endif %}><label class="form-check-label" for="allowed-{{s.id}}">Dodaj do zamkniętej listy firmy</label></div></div><div class="col-12"><button class="btn btn-primary btn-sm">Zapisz</button></div></form></td>
|
||||
<td>{% for card in fuel_cards %}{% set rule=card_rules.get((card.id,s.id)) %}<form action="/api/fuel-cards/{{card.id}}/stations/{{s.id}}" data-method="PUT" class="ajax-form border rounded p-2 mb-2"><div class="fw-semibold small mb-2">{{card.name}}</div><div class="row g-2"><div class="col-12"><div class="form-check"><input class="form-check-input" type="checkbox" name="allowed" id="rule-allowed-{{card.id}}-{{s.id}}" {% if not rule or rule.allowed %}checked{% endif %}><label class="form-check-label" for="rule-allowed-{{card.id}}-{{s.id}}">Dozwolona dla karty</label></div><div class="form-check"><input class="form-check-input" type="checkbox" name="use_orlen_last_price" id="rule-last-{{card.id}}-{{s.id}}" {% if rule and rule.use_orlen_last_price %}checked{% endif %}><label class="form-check-label" for="rule-last-{{card.id}}-{{s.id}}">Orlen last price</label></div></div><div class="col-6"><label class="form-label small">Rabat netto %</label><input class="form-control form-control-sm" type="number" step="0.001" name="discount_net_percent" value="{{rule.discount_net_percent if rule else 0}}"></div><div class="col-6"><label class="form-label small">Dopłata netto/l</label><input class="form-control form-control-sm" type="number" step="0.0001" name="surcharge_net_per_liter" value="{{rule.surcharge_net_per_liter if rule else 0}}"></div><div class="col-12"><button class="btn btn-primary btn-sm">Zapisz warunki</button></div></div></form>{% else %}<span class="text-body-secondary small">Najpierw dodaj kartę w ustawieniach firmy.</span>{% endfor %}</td>
|
||||
</tr>{% else %}<tr><td colspan="5" class="text-center text-body-secondary py-5">Brak firm. Pobierz katalog z URE.</td></tr>{% endfor %}
|
||||
</tbody></table></div>
|
||||
|
||||
Reference in New Issue
Block a user