Deal better with the wallet letter number combo of 2019#X01

This commit is contained in:
Sam Wenham 2019-02-24 18:55:30 +00:00
parent f6d4ce8d0b
commit e59f8308ce
2 changed files with 10 additions and 7 deletions

View File

@ -800,9 +800,11 @@ class DPhoto(TroggleImageModel):
scansFileStorage = FileSystemStorage(location=settings.SURVEY_SCANS, base_url=settings.SURVEYS_URL) scansFileStorage = FileSystemStorage(location=settings.SURVEY_SCANS, base_url=settings.SURVEYS_URL)
def get_scan_path(instance, filename): def get_scan_path(instance, filename):
year=instance.survey.expedition.year year=instance.survey.expedition.year
#print "WN: ", type(instance.survey.wallet_number), instance.survey.wallet_number #print("WN: ", type(instance.survey.wallet_number), instance.survey.wallet_number, instance.survey.wallet_letter)
number=str(instance.survey.wallet_number) + str(instance.survey.wallet_letter) #two strings formatting because convention is 2009#01 or 2009#X01 number=str(instance.survey.wallet_number)
return os.path.join('./',year,year+r'#'+number,instance.contents+str(instance.number_in_wallet)+r'.jpg') if str(instance.survey.wallet_letter) != "None":
number=str(instance.survey.wallet_letter) + number #two strings formatting because convention is 2009#01 or 2009#X01
return os.path.join('./',year,year+r'#'+number,str(instance.contents)+str(instance.number_in_wallet)+r'.jpg')
class ScannedImage(TroggleImageModel): class ScannedImage(TroggleImageModel):
file = models.ImageField(storage=scansFileStorage, upload_to=get_scan_path) file = models.ImageField(storage=scansFileStorage, upload_to=get_scan_path)

View File

@ -95,7 +95,7 @@ def parseSurveyScans(expedition, logfile=None):
print(yearFileList) print(yearFileList)
for surveyFolder in yearFileList: for surveyFolder in yearFileList:
try: try:
surveyNumber=re.match(r'\d\d\d\d#0*(\d+)',surveyFolder).groups() surveyNumber=re.match(r'\d\d\d\d#(X?)0*(\d+)',surveyFolder).groups()
#scanList = listdir(expedition.year, surveyFolder) #scanList = listdir(expedition.year, surveyFolder)
scanList=os.listdir(os.path.join(yearPath,surveyFolder)) scanList=os.listdir(os.path.join(yearPath,surveyFolder))
except AttributeError: except AttributeError:
@ -116,12 +116,13 @@ def parseSurveyScans(expedition, logfile=None):
scanNumber=1 scanNumber=1
if type(surveyNumber)==types.TupleType: if type(surveyNumber)==types.TupleType:
surveyNumber=surveyNumber[0] surveyLetter=surveyNumber[0]
surveyNumber=surveyNumber[1]
try: try:
placeholder=get_or_create_placeholder(year=int(expedition.year)) placeholder=get_or_create_placeholder(year=int(expedition.year))
survey=Survey.objects.get_or_create(wallet_number=surveyNumber, expedition=expedition, defaults={'logbook_entry':placeholder})[0] survey=Survey.objects.get_or_create(wallet_number=surveyNumber, wallet_letter=surveyLetter, expedition=expedition, defaults={'logbook_entry':placeholder})[0]
except Survey.MultipleObjectsReturned: except Survey.MultipleObjectsReturned:
survey=Survey.objects.filter(wallet_number=surveyNumber, expedition=expedition)[0] survey=Survey.objects.filter(wallet_number=surveyNumber, wallet_letter=surveyLetter, expedition=expedition)[0]
file_=os.path.join(yearPath, surveyFolder, scan) file_=os.path.join(yearPath, surveyFolder, scan)
scanObj = ScannedImage( scanObj = ScannedImage(
file=file_, file=file_,