소스 검색

add function create service tariff

Староверов Данила Андреевич 2 년 전
부모
커밋
c5fc741a6d

+ 23 - 3
SharixAdmin/forms.py

@@ -16,15 +16,35 @@ class LoginUserForm(AuthenticationForm):
         model = SharixUser
         fields = ['username', 'password']
 
-class ServiceTariffForm(forms.ModelForm):
-
+class ServiceTariffUpdateForm(forms.ModelForm):
     class Meta:
         model = Service
         fields = ['status','ticket_status','servicetype_id','id_provider',
                   'resource_id','requirements','price_alg','price_km','price_min','price_amount','service_status',
                   'is_global','is_visible']
         widgets = {
-            'status': forms.TextInput(attrs={'readonly': True}),
+            'status': forms.TextInput(attrs={'readonly': True, 'class': 'form-control'}),
             'ticket_status': forms.TextInput(attrs={'readonly': True}),
         }
+
+class ServiceTariffCreateForm(forms.ModelForm):
+    def __init__(self, *args, **kwargs):
+        super(ServiceTariffCreateForm, self).__init__(*args, **kwargs)
+        # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
+        for field in iter(self.fields):
+            if 'class' not in self.fields[field].widget.attrs:
+                self.fields[field].widget.attrs.update({'class':'form-control'})
+    
+    class Meta:
+        model = Service
+        fields = '__all__'
+
+        widgets = {
+            'servicetype_id': forms.Select(attrs={'class': 'form-select'}),
+            'id_provider': forms.Select(attrs={'class': 'form-select'}),
+            'resource_id': forms.Select(attrs={'class': 'form-select'}),
+            'ticket_status': forms.Select(attrs={'class': 'form-select'}),
+        }
+
+    
         

+ 1 - 0
SharixAdmin/templates/SharixAdmin/provider.html

@@ -3,6 +3,7 @@
 
 {% block contenthome %}
     <h1 >{{ title }}</h1>
+
     <div class="container text-center mt-2">
       {% render_table table %}
     </div>

+ 5 - 4
SharixAdmin/templates/SharixAdmin/service_tariff.html

@@ -6,8 +6,7 @@
     <div class="container text-center mt-2">
           {% render_table table %}
 
-          
-          {% if table.page %}
+          {% comment %} {% if table.page %}
             <nav aria-label="...">
               <ul class="pagination">
                 {% if table.page.has_previous %}
@@ -41,7 +40,9 @@
                 {% endif %}
               </ul>
             </nav>
-          {% endif %}
+          {% endif %} {% endcomment %}
+    </div>
+    <div class="container text-end mt-2">
+      <a class="btn btn-primary" href="/service_tariff/add">Добавить</a>
     </div>
-    
 {% endblock contenthome %}

+ 4 - 1
SharixAdmin/templates/SharixAdmin/service_tariff_form.html

@@ -10,9 +10,12 @@
         <div class="row">
             {{field.label_tag}}
             {{field}}
+            <p class="fs-6 fst-italic">{{field.help_text|truncatewords:20}}</p>
         </div>
         {% endfor %}
     </div>
-    <input type="submit" name="apply" value="Отправить" />
+    <div class="text-center mt-2 mb-5">
+        <input class="btn btn-primary center" type="submit" name="apply" value="Отправить" />
+    </div>
 </form>
 {% endblock %}

+ 1 - 0
SharixAdmin/urls.py

@@ -25,6 +25,7 @@ urlpatterns = [
     path('provider/change_status/', change_provider_status, name='provider/change_status'),
 
     path('service_tariff/', ServiceTariffListView.as_view(), name='service_tariff'),
+    path('service_tariff/add/', ServiceTariffCreate.as_view(), name='service_tariff/add/'),
     path('service_tariff/edit/<int:pk>', ServiceTariffUpdateView.as_view(), name='service_tariff/edit/'),
 
     #path('v1/auth/', include('djoser.urls')),

+ 18 - 2
SharixAdmin/views.py

@@ -12,7 +12,7 @@ from django.contrib.auth import logout
 from django.db.models import Q
 from .tables import *
 from django import template
-from django.views.generic.edit import UpdateView
+from django.views.generic.edit import UpdateView, CreateView
 
 from metaservicesynced.models import *
 # Create your views here.
@@ -135,7 +135,23 @@ def change_provider_status(request):
 
 class ServiceTariffUpdateView(UpdateView):
     model = Service
-    form_class = ServiceTariffForm
+    form_class = ServiceTariffUpdateForm
+    template_name = "SharixAdmin/service_tariff_form.html"
+
+    def get_context_data(self, **kwargs):
+        context = super().get_context_data(**kwargs)
+        context.update(get_context(self.request, {
+            'title': 'Тарифы услуг',
+            'object': self.object,
+        }))
+        return context
+    
+    def get_success_url(self):
+        return reverse('service_tariff')
+
+class ServiceTariffCreate(CreateView):
+    model = Service
+    form_class = ServiceTariffCreateForm
     template_name = "SharixAdmin/service_tariff_form.html"
 
     def get_context_data(self, **kwargs):

+ 1 - 0
core/settings.py

@@ -18,6 +18,7 @@ CSRF_TRUSTED_ORIGINS = []
 
 # Application definition
 INSTALLED_APPS = [
+    'bootstrap5',
     'jazzmin',
     'django.contrib.admin',
     'django.contrib.auth',

+ 3 - 0
requirements.txt

@@ -2,6 +2,7 @@ aniso8601==9.0.1
 asgiref==3.5.2
 attrs==22.2.0
 bleach==5.0.1
+beautifulsoup4==4.12.2
 certifi==2022.12.7
 cffi==1.15.1
 charset-normalizer==3.0.1
@@ -10,6 +11,7 @@ coreschema==0.0.4
 cryptography==39.0.0
 defusedxml==0.7.1
 Django==4.1.3
+django-bootstrap-v5==1.0.11
 django-extensions==3.2.1
 django-jazzmin==2.6.0
 django-schema-graph==2.2.1
@@ -48,6 +50,7 @@ ruamel.yaml.clib==0.2.7
 six==1.16.0
 social-auth-app-django==4.0.0
 social-auth-core==4.3.0
+soupsieve==2.4.1
 sqlparse==0.4.3
 text-unidecode==1.3
 tzdata==2022.6