deleting the file in database if it exists in report
This commit is contained in:
		
							parent
							
								
									16dbd04ef4
								
							
						
					
					
						commit
						7b2c58cb2d
					
				
					 3 changed files with 32 additions and 4 deletions
				
			
		| 
						 | 
					@ -2,6 +2,7 @@ from django.db import models
 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
import datetime
 | 
					import datetime
 | 
				
			||||||
import ntpath
 | 
					import ntpath
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Report(models.Model):
 | 
					class Report(models.Model):
 | 
				
			||||||
    user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
 | 
					    user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
 | 
				
			||||||
| 
						 | 
					@ -81,7 +82,21 @@ class Field(models.Model):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # function that accommodates if
 | 
					    # function that accommodates if
 | 
				
			||||||
    # path has slash at end
 | 
					    # path has slash at end
 | 
				
			||||||
    def path_leaf(self, path):
 | 
					    def path_leaf(self, path, flag=1):
 | 
				
			||||||
        head, tail = ntpath.split(path)
 | 
					        dir_path, name = ntpath.split(path)
 | 
				
			||||||
        return tail or ntpath.basename(head)
 | 
					        if flag == 1:
 | 
				
			||||||
 | 
					            return name or ntpath.basename(dir_path)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            return dir_path, name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # def delete_data_file(self, file_path):
 | 
				
			||||||
 | 
					    #     # delete file name in uploads
 | 
				
			||||||
 | 
					    #     # os.remove(file_name)
 | 
				
			||||||
 | 
					    #     os.remove(file_path)
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    #     # check if directory is empty
 | 
				
			||||||
 | 
					    #     # if yes, delete directory
 | 
				
			||||||
 | 
					    #     # if [f for f in os.listdir("back/uploads") if not f.startswith('.')] == []:
 | 
				
			||||||
 | 
					    #     #     os.removedirs("")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@ from rest_framework.decorators import api_view
 | 
				
			||||||
from django.http import JsonResponse
 | 
					from django.http import JsonResponse
 | 
				
			||||||
from .models import *
 | 
					from .models import *
 | 
				
			||||||
from .policy import pol
 | 
					from .policy import pol
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# function that prints all the reports
 | 
					# function that prints all the reports
 | 
				
			||||||
| 
						 | 
					@ -133,7 +134,19 @@ def report_detail(request, report_pk):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Delete the report
 | 
					    # Delete the report
 | 
				
			||||||
    elif request.method == 'DELETE':
 | 
					    elif request.method == 'DELETE':
 | 
				
			||||||
        Report.objects.filter(id=report_pk).delete()
 | 
					        # get corresponding sections
 | 
				
			||||||
 | 
					        section_set = Section.objects.filter(report_id=report_pk)
 | 
				
			||||||
 | 
					        for i in section_set:
 | 
				
			||||||
 | 
					            # gets the fields that have a field in them
 | 
				
			||||||
 | 
					            field_set = Field.objects.filter(section_id=i.id).exclude(data_file__exact='')
 | 
				
			||||||
 | 
					            if field_set.exists():
 | 
				
			||||||
 | 
					                for j in field_set:
 | 
				
			||||||
 | 
					                    # delete the file if exists
 | 
				
			||||||
 | 
					                    path_name = str(j.data_file)
 | 
				
			||||||
 | 
					                    os.remove(path_name)
 | 
				
			||||||
 | 
					                    # Field.delete_data_file(j, path_name)
 | 
				
			||||||
 | 
					        # delete the full report
 | 
				
			||||||
 | 
					        Report.objects.get(id=report_pk).delete()
 | 
				
			||||||
        return JsonResponse({"message": "Deleted report {0}.".format(report_pk)})
 | 
					        return JsonResponse({"message": "Deleted report {0}.".format(report_pk)})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								back/db.sqlite3
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								back/db.sqlite3
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	Add table
		
		Reference in a new issue