mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Fix issue where custom job name was being ignored
This commit is contained in:
@@ -49,12 +49,11 @@ def handle_uploaded_project_files(request, jobs_list, upload_directory):
|
|||||||
raise ValueError(f"Error downloading file from URL: {project_url}")
|
raise ValueError(f"Error downloading file from URL: {project_url}")
|
||||||
elif local_path and os.path.exists(local_path):
|
elif local_path and os.path.exists(local_path):
|
||||||
referred_name = os.path.basename(local_path)
|
referred_name = os.path.basename(local_path)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise ValueError("Cannot find any valid project paths")
|
raise ValueError("Cannot find any valid project paths")
|
||||||
|
|
||||||
# Prepare the local filepath
|
# Prepare the local filepath
|
||||||
cleaned_path_name = os.path.splitext(referred_name)[0].replace(' ', '_')
|
cleaned_path_name = jobs_list[0].get('name', os.path.splitext(referred_name)[0]).replace(' ', '-')
|
||||||
job_dir = os.path.join(upload_directory, '-'.join(
|
job_dir = os.path.join(upload_directory, '-'.join(
|
||||||
[datetime.now().strftime("%Y.%m.%d_%H.%M.%S"), renderer, cleaned_path_name]))
|
[datetime.now().strftime("%Y.%m.%d_%H.%M.%S"), renderer, cleaned_path_name]))
|
||||||
os.makedirs(job_dir, exist_ok=True)
|
os.makedirs(job_dir, exist_ok=True)
|
||||||
|
|||||||
@@ -62,7 +62,10 @@ class BlenderRenderWorker(BaseRenderWorker):
|
|||||||
# Export format
|
# Export format
|
||||||
export_format = self.args.get('export_format', None) or 'JPEG'
|
export_format = self.args.get('export_format', None) or 'JPEG'
|
||||||
|
|
||||||
path_without_ext = os.path.splitext(self.output_path)[0] + "_"
|
main_part, ext = os.path.splitext(self.output_path)
|
||||||
|
# Remove the extension only if it is not composed entirely of digits
|
||||||
|
path_without_ext = main_part if not ext[1:].isdigit() else self.output_path
|
||||||
|
path_without_ext += "_"
|
||||||
cmd.extend(['-E', blender_engine, '-o', path_without_ext, '-F', export_format])
|
cmd.extend(['-E', blender_engine, '-o', path_without_ext, '-F', export_format])
|
||||||
|
|
||||||
# set frame range
|
# set frame range
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class NewRenderJobForm(QWidget):
|
|||||||
self.priority_input = None
|
self.priority_input = None
|
||||||
self.end_frame_input = None
|
self.end_frame_input = None
|
||||||
self.start_frame_input = None
|
self.start_frame_input = None
|
||||||
self.output_path_input = None
|
self.render_name_input = None
|
||||||
self.scene_file_input = None
|
self.scene_file_input = None
|
||||||
self.scene_file_browse_button = None
|
self.scene_file_browse_button = None
|
||||||
self.job_name_input = None
|
self.job_name_input = None
|
||||||
@@ -136,11 +136,11 @@ class NewRenderJobForm(QWidget):
|
|||||||
self.output_settings_group = QGroupBox("Output Settings")
|
self.output_settings_group = QGroupBox("Output Settings")
|
||||||
output_settings_layout = QVBoxLayout(self.output_settings_group)
|
output_settings_layout = QVBoxLayout(self.output_settings_group)
|
||||||
# output path
|
# output path
|
||||||
output_path_layout = QHBoxLayout()
|
render_name_layout = QHBoxLayout()
|
||||||
output_path_layout.addWidget(QLabel("Render name:"))
|
render_name_layout.addWidget(QLabel("Render name:"))
|
||||||
self.output_path_input = QLineEdit()
|
self.render_name_input = QLineEdit()
|
||||||
output_path_layout.addWidget(self.output_path_input)
|
render_name_layout.addWidget(self.render_name_input)
|
||||||
output_settings_layout.addLayout(output_path_layout)
|
output_settings_layout.addLayout(render_name_layout)
|
||||||
# file format
|
# file format
|
||||||
file_format_layout = QHBoxLayout()
|
file_format_layout = QHBoxLayout()
|
||||||
file_format_layout.addWidget(QLabel("Format:"))
|
file_format_layout.addWidget(QLabel("Format:"))
|
||||||
@@ -281,7 +281,7 @@ class NewRenderJobForm(QWidget):
|
|||||||
|
|
||||||
output_name, _ = os.path.splitext(os.path.basename(self.scene_file_input.text()))
|
output_name, _ = os.path.splitext(os.path.basename(self.scene_file_input.text()))
|
||||||
output_name = output_name.replace(' ', '_')
|
output_name = output_name.replace(' ', '_')
|
||||||
self.output_path_input.setText(output_name)
|
self.render_name_input.setText(output_name)
|
||||||
file_name = self.scene_file_input.text()
|
file_name = self.scene_file_input.text()
|
||||||
|
|
||||||
# setup bg worker
|
# setup bg worker
|
||||||
@@ -292,7 +292,7 @@ class NewRenderJobForm(QWidget):
|
|||||||
def browse_output_path(self):
|
def browse_output_path(self):
|
||||||
directory = QFileDialog.getExistingDirectory(self, "Select Output Directory")
|
directory = QFileDialog.getExistingDirectory(self, "Select Output Directory")
|
||||||
if directory:
|
if directory:
|
||||||
self.output_path_input.setText(directory)
|
self.render_name_input.setText(directory)
|
||||||
|
|
||||||
def args_help_button_clicked(self):
|
def args_help_button_clicked(self):
|
||||||
url = (f'http://{self.server_proxy.hostname}:{self.server_proxy.port}/api/renderer/'
|
url = (f'http://{self.server_proxy.hostname}:{self.server_proxy.port}/api/renderer/'
|
||||||
@@ -316,8 +316,6 @@ class NewRenderJobForm(QWidget):
|
|||||||
self.renderer_type.setCurrentIndex(0) #todo: find out why we don't have renderer info yet
|
self.renderer_type.setCurrentIndex(0) #todo: find out why we don't have renderer info yet
|
||||||
# not ideal but if we don't have the renderer info we have to pick something
|
# not ideal but if we don't have the renderer info we have to pick something
|
||||||
|
|
||||||
self.output_path_input.setText(os.path.basename(input_path))
|
|
||||||
|
|
||||||
# cleanup progress UI
|
# cleanup progress UI
|
||||||
self.load_file_group.setHidden(True)
|
self.load_file_group.setHidden(True)
|
||||||
self.toggle_renderer_enablement(True)
|
self.toggle_renderer_enablement(True)
|
||||||
@@ -451,14 +449,16 @@ class SubmitWorker(QThread):
|
|||||||
job_json = {'owner': psutil.Process().username() + '@' + socket.gethostname(),
|
job_json = {'owner': psutil.Process().username() + '@' + socket.gethostname(),
|
||||||
'renderer': self.window.renderer_type.currentText().lower(),
|
'renderer': self.window.renderer_type.currentText().lower(),
|
||||||
'engine_version': self.window.renderer_version_combo.currentText(),
|
'engine_version': self.window.renderer_version_combo.currentText(),
|
||||||
'args': {'raw': self.window.raw_args.text()},
|
'args': {'raw': self.window.raw_args.text(),
|
||||||
'output_path': self.window.output_path_input.text(),
|
'export_format': self.window.file_format_combo.currentText()},
|
||||||
|
'output_path': self.window.render_name_input.text(),
|
||||||
'start_frame': self.window.start_frame_input.value(),
|
'start_frame': self.window.start_frame_input.value(),
|
||||||
'end_frame': self.window.end_frame_input.value(),
|
'end_frame': self.window.end_frame_input.value(),
|
||||||
'priority': self.window.priority_input.currentIndex() + 1,
|
'priority': self.window.priority_input.currentIndex() + 1,
|
||||||
'notes': self.window.notes_input.toPlainText(),
|
'notes': self.window.notes_input.toPlainText(),
|
||||||
'enable_split_jobs': self.window.enable_splitjobs.isChecked(),
|
'enable_split_jobs': self.window.enable_splitjobs.isChecked(),
|
||||||
'split_jobs_same_os': self.window.splitjobs_same_os.isChecked()}
|
'split_jobs_same_os': self.window.splitjobs_same_os.isChecked(),
|
||||||
|
'name': self.window.render_name_input.text()}
|
||||||
|
|
||||||
# get the dynamic args
|
# get the dynamic args
|
||||||
for i in range(self.window.renderer_options_layout.count()):
|
for i in range(self.window.renderer_options_layout.count()):
|
||||||
@@ -487,7 +487,8 @@ class SubmitWorker(QThread):
|
|||||||
for cam in selected_cameras:
|
for cam in selected_cameras:
|
||||||
job_copy = copy.deepcopy(job_json)
|
job_copy = copy.deepcopy(job_json)
|
||||||
job_copy['args']['camera'] = cam
|
job_copy['args']['camera'] = cam
|
||||||
job_copy['name'] = pathlib.Path(input_path).stem.replace(' ', '_') + "-" + cam.replace(' ', '')
|
job_copy['name'] = job_copy['name'].replace(' ', '-') + "_" + cam.replace(' ', '')
|
||||||
|
job_copy['output_path'] = job_copy['name']
|
||||||
job_list.append(job_copy)
|
job_list.append(job_copy)
|
||||||
else:
|
else:
|
||||||
job_list = [job_json]
|
job_list = [job_json]
|
||||||
|
|||||||
Reference in New Issue
Block a user