From 66d6118b1a2dc914e7979ef40b1a360ad62b80fc Mon Sep 17 00:00:00 2001 From: Himanshu Date: Tue, 4 Feb 2025 15:55:16 +0530 Subject: [PATCH] get_proposal --- ....cpp_2629740fb95527ed95853a5f515a9586.prob | 1 + .../migrations/0002_auto_20241015_1451.py | 66 +++++++++---------- .../iwdModuleV2/api/serializers.py | 6 +- .../applications/iwdModuleV2/api/urls.py | 1 + .../applications/iwdModuleV2/api/views.py | 16 +++-- .../migrations/0002_auto_20250128_1656.py | 40 +++++++++++ 6 files changed, 90 insertions(+), 40 deletions(-) create mode 100644 .cph/.A_String.cpp_2629740fb95527ed95853a5f515a9586.prob create mode 100644 FusionIIIT/applications/online_cms/migrations/0002_auto_20250128_1656.py diff --git a/.cph/.A_String.cpp_2629740fb95527ed95853a5f515a9586.prob b/.cph/.A_String.cpp_2629740fb95527ed95853a5f515a9586.prob new file mode 100644 index 000000000..78039d569 --- /dev/null +++ b/.cph/.A_String.cpp_2629740fb95527ed95853a5f515a9586.prob @@ -0,0 +1 @@ +{"name":"A. String","group":"Codeforces - Ethflow Round 1 (Codeforces Round 1001, Div. 1 + Div. 2)","url":"https://codeforces.com/contest/2062/problem/A","interactive":false,"memoryLimit":512,"timeLimit":1000,"tests":[{"id":1738062641466,"input":"5\n1\n000\n1001\n10101\n01100101011101\n","output":"1\n0\n2\n3\n8\n"}],"testType":"single","input":{"type":"stdin"},"output":{"type":"stdout"},"languages":{"java":{"mainClass":"Main","taskClass":"AString"}},"batch":{"id":"e81382aa-02ee-4e12-97fb-c19403e8b78b","size":1},"srcPath":"/home/ubuntu/fusion0/Fusion/A_String.cpp"} \ No newline at end of file diff --git a/FusionIIIT/applications/globals/migrations/0002_auto_20241015_1451.py b/FusionIIIT/applications/globals/migrations/0002_auto_20241015_1451.py index 46d64993b..1ec2c564d 100644 --- a/FusionIIIT/applications/globals/migrations/0002_auto_20241015_1451.py +++ b/FusionIIIT/applications/globals/migrations/0002_auto_20241015_1451.py @@ -9,36 +9,36 @@ class Migration(migrations.Migration): ('globals', '0001_initial'), ] - operations = [ - migrations.CreateModel( - name='ModuleAccess', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('designation', models.CharField(max_length=155)), - ('program_and_curriculum', models.BooleanField(default=False)), - ('course_registration', models.BooleanField(default=False)), - ('course_management', models.BooleanField(default=False)), - ('other_academics', models.BooleanField(default=False)), - ('spacs', models.BooleanField(default=False)), - ('department', models.BooleanField(default=False)), - ('examinations', models.BooleanField(default=False)), - ('hr', models.BooleanField(default=False)), - ('iwd', models.BooleanField(default=False)), - ('complaint_management', models.BooleanField(default=False)), - ('fts', models.BooleanField(default=False)), - ('purchase_and_store', models.BooleanField(default=False)), - ('rspc', models.BooleanField(default=False)), - ('hostel_management', models.BooleanField(default=False)), - ('mess_management', models.BooleanField(default=False)), - ('gymkhana', models.BooleanField(default=False)), - ('placement_cell', models.BooleanField(default=False)), - ('visitor_hostel', models.BooleanField(default=False)), - ('phc', models.BooleanField(default=False)), - ], - ), - migrations.AddField( - model_name='extrainfo', - name='last_selected_role', - field=models.CharField(blank=True, max_length=20, null=True), - ), - ] + # operations = [ + # migrations.CreateModel( + # name='ModuleAccess', + # fields=[ + # ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + # ('designation', models.CharField(max_length=155)), + # ('program_and_curriculum', models.BooleanField(default=False)), + # ('course_registration', models.BooleanField(default=False)), + # ('course_management', models.BooleanField(default=False)), + # ('other_academics', models.BooleanField(default=False)), + # ('spacs', models.BooleanField(default=False)), + # ('department', models.BooleanField(default=False)), + # ('examinations', models.BooleanField(default=False)), + # ('hr', models.BooleanField(default=False)), + # ('iwd', models.BooleanField(default=False)), + # ('complaint_management', models.BooleanField(default=False)), + # ('fts', models.BooleanField(default=False)), + # ('purchase_and_store', models.BooleanField(default=False)), + # ('rspc', models.BooleanField(default=False)), + # ('hostel_management', models.BooleanField(default=False)), + # ('mess_management', models.BooleanField(default=False)), + # ('gymkhana', models.BooleanField(default=False)), + # ('placement_cell', models.BooleanField(default=False)), + # ('visitor_hostel', models.BooleanField(default=False)), + # ('phc', models.BooleanField(default=False)), + # ], + # ), + # migrations.AddField( + # model_name='extrainfo', + # name='last_selected_role', + # field=models.CharField(blank=True, max_length=20, null=True), + # ), + # ] diff --git a/FusionIIIT/applications/iwdModuleV2/api/serializers.py b/FusionIIIT/applications/iwdModuleV2/api/serializers.py index 03c1bd373..5c475c7bc 100644 --- a/FusionIIIT/applications/iwdModuleV2/api/serializers.py +++ b/FusionIIIT/applications/iwdModuleV2/api/serializers.py @@ -142,15 +142,15 @@ class Meta: class ItemSerializer(serializers.ModelSerializer): class Meta: model = Item - fields = '__all__' + fields = ['name', 'description', 'unit', 'price_per_unit', 'total_price', 'docs'] class ProposalSerializer(serializers.ModelSerializer): - # items = ItemSerializer(many=True) + items = ItemSerializer(many=True) class Meta: model = Proposal fields = '__all__' def create(self, validated_data): - items_data = validated_data.pop('items') + items_data = validated_data.pop('items', []) proposal = Proposal.objects.create(**validated_data) total_budget = 0 for item_data in items_data: diff --git a/FusionIIIT/applications/iwdModuleV2/api/urls.py b/FusionIIIT/applications/iwdModuleV2/api/urls.py index 6afa649a0..e2711e71e 100644 --- a/FusionIIIT/applications/iwdModuleV2/api/urls.py +++ b/FusionIIIT/applications/iwdModuleV2/api/urls.py @@ -27,6 +27,7 @@ path('requests-status/', views.requests_status, name='requestsStatus'), path('audit-document-view/', views.audit_document_view, name='auditDocumentView'), path('audit-document/', views.handle_audit_document, name='auditDocument'), + path('get-proposals/', views.get_proposals, name='getProposals'), # partially integrated on frontend path('handle-process-bills/', views.handle_process_bills, name='handleProcessedBills'), diff --git a/FusionIIIT/applications/iwdModuleV2/api/views.py b/FusionIIIT/applications/iwdModuleV2/api/views.py index b558fc800..dfe2d8b2b 100644 --- a/FusionIIIT/applications/iwdModuleV2/api/views.py +++ b/FusionIIIT/applications/iwdModuleV2/api/views.py @@ -1175,8 +1175,12 @@ def handle_settle_bill_requests(request): @permission_classes([IsAuthenticated]) def create_proposal(request): data = request.data + data["created_by"] = str(request.user) + data["request"] = data.get('id') + print(Requests.objects.get(id=data.get('id'))) + print(request.user) receiver_desg, receiver_user = data.get('designation').split('|') - serializer = ProposalSerializer(data=request.data) + serializer = ProposalSerializer(data=data) if serializer.is_valid(): file_id = create_file( uploader=request.user.username, @@ -1189,14 +1193,18 @@ def create_proposal(request): attached_file=None ) file_instance = File.objects.get(id=file_id) - proposal = serializer.save(created_by=request.user, file=file_instance) + proposal = serializer.save( + file=file_instance + ) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @api_view(['GET']) @permission_classes([IsAuthenticated]) -def get_proposals(request, request_id): - proposals = Proposal.objects.filter(request_id=request_id) +def get_proposals(request): + data=request.data; + proposals = Proposal.objects.filter(request_id=data["request_id"]) serializer = ProposalSerializer(proposals, many=True) return Response(serializer.data, status=status.HTTP_200_OK) + diff --git a/FusionIIIT/applications/online_cms/migrations/0002_auto_20250128_1656.py b/FusionIIIT/applications/online_cms/migrations/0002_auto_20250128_1656.py new file mode 100644 index 000000000..ba949e0d9 --- /dev/null +++ b/FusionIIIT/applications/online_cms/migrations/0002_auto_20250128_1656.py @@ -0,0 +1,40 @@ +# Generated by Django 3.1.5 on 2025-01-28 16:56 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('academic_information', '0001_initial'), + ('online_cms', '0001_initial'), + ] + + operations = [ + # migrations.AddField( + # model_name='attendance', + # name='no_of_attendance', + # field=models.IntegerField(default=1), + # ), + migrations.AlterField( + model_name='attendance', + name='present', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='gradingscheme', + name='type_of_evaluation', + field=models.CharField(max_length=100), + ), + # migrations.CreateModel( + # name='StudentEvaluation', + # fields=[ + # ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + # ('marks', models.DecimalField(decimal_places=2, max_digits=10, null=True)), + # ('total_marks', models.DecimalField(decimal_places=2, default=0, max_digits=10)), + # ('evaluation_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.gradingscheme')), + # ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + # ], + # ), + ]