Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • genotoul-bioinfo/d-genies/dgenies
1 result
Show changes
Commits on Source (4)
......@@ -96,4 +96,7 @@ max_concurrent_dl = 5
[example]
query =
target =
target =
[analytics]
enable_logging_runs = False
......@@ -415,3 +415,9 @@ class AppConfigReader:
return self.reader.get("example", "target")
except (NoOptionError, NoSectionError):
return ""
def _get_analytics_enabled(self):
try:
return self.reader.get("analytics", "enable_logging_runs").lower() == "true"
except (NoOptionError, NoSectionError):
return False
......@@ -124,7 +124,17 @@ if MODE == "webserver":
self.save()
if config.analytics_enabled:
class Analytics(BaseModel):
date_created = DateTimeField()
target_size = IntegerField()
query_size = IntegerField(null=True)
mail_client = CharField()
batch_type = CharField(max_length=20)
if not Analytics.table_exists():
Analytics.create_table()
if not Job.table_exists():
Job.create_table()
......
......@@ -872,6 +872,22 @@ class JobManager:
if MODE == "webserver" and self.config.send_mail_status:
self.send_mail_post()
def _save_analytics_data(self):
from dgenies.database import Analytics
with Job.connect():
job = Job.get(Job.id_job == self.id_job)
target_size = os.path.getsize(self.target.get_path())
query_size = None
if self.query is not None:
query_size = os.path.getsize(self.query.get_path())
log = Analytics.create(
date_created=datetime.now(),
target_size=target_size,
query_size=query_size,
mail_client=job.email,
batch_type=job.batch_type)
log.save()
def _after_start(self, success, error_set):
with Job.connect():
if success:
......@@ -880,6 +896,8 @@ class JobManager:
job = Job.get(Job.id_job == self.id_job)
job.status = status
job.save()
if self.config.analytics_enabled:
self._save_analytics_data()
else:
self.set_status_standalone("waiting")
self.prepare_data_in_thread()
......
......@@ -262,8 +262,6 @@ d3.boxplot.draw_left_axis = function (y_max, y_min = 0) {
.attr("preserveAspectRatio", "none");
let container_left = svg_left.append("g")
.attr("width", axis_length)
.attr("height", 20)
.attr("transform", "translate(0," + axis_length + ")rotate(-90)");
let y_size = y_max - y_min;
......@@ -491,8 +489,6 @@ d3.boxplot.draw_right_axis = function (y_zones=d3.boxplot.y_zones) {
.attr("preserveAspectRatio", "none");
let container_right = svg_right.append("g")
.attr("width", axis_length)
.attr("height", 20)
.attr("transform", "translate(20)rotate(90)");
container_right.append("text")
......
......@@ -32,7 +32,10 @@ dgenies.result.export.export_svg = function () {
window.setTimeout(() => {
let transform = d3.boxplot.container.attr("transform");
let after = function () {
let blob = new Blob([dgenies.result.export.get_svg()], {type: "image/svg+xml"});
let svg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" " +
"\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">";
svg += dgenies.result.export.get_svg();
let blob = new Blob([svg], {type: "image/svg+xml"});
d3.boxplot.zoom.restore_scale(transform);
dgenies.result.export.save_file(blob, "svg");
};
......