]> mj.ucw.cz Git - eval.git/blobdiff - submit/commands.c
Reworked the installation machinery.
[eval.git] / submit / commands.c
index 595db773dc7e4c4cb2eaf3494d90bc51e1925d26..93d9ae9e52c836ca49d2e7a5d7479427c3fe28dd 100644 (file)
@@ -93,8 +93,9 @@ static void
 copy_attrs(struct odes *dest, struct odes *src)
 {
   for (struct oattr *a = src->attrs ; a; a=a->next)
 copy_attrs(struct odes *dest, struct odes *src)
 {
   for (struct oattr *a = src->attrs ; a; a=a->next)
-    for (struct oattr *aa = a; aa; aa=aa->same)
-      obj_add_attr(dest, aa->attr, aa->val);
+    if (a->attr < OBJ_ATTR_SON)
+      for (struct oattr *aa = a; aa; aa=aa->same)
+       obj_add_attr(dest, aa->attr, aa->val);
 }
 
 static void
 }
 
 static void
@@ -201,9 +202,6 @@ cmd_submit(struct conn *c)
   if (!fb)
     return;
 
   if (!fb)
     return;
 
-  // FIXME: Check contest time
-  // FIXME: Keep history of submitted tasks
-
   task_lock_status(c);
   struct odes *tasko = task_status_find_task(c, task, 1);
   struct odes *parto = task_status_find_part(tasko, pname, 1);
   task_lock_status(c);
   struct odes *tasko = task_status_find_task(c, task, 1);
   struct odes *parto = task_status_find_part(tasko, pname, 1);
@@ -226,10 +224,9 @@ cmd_submit(struct conn *c)
   struct odes *vero = obj_add_son(parto, 'V' + OBJ_ATTR_SON);
   obj_set_attr_num(vero, 'V', ++last_ver);
   obj_set_attr_num(vero, 'T', time(NULL));
   struct odes *vero = obj_add_son(parto, 'V' + OBJ_ATTR_SON);
   obj_set_attr_num(vero, 'V', ++last_ver);
   obj_set_attr_num(vero, 'T', time(NULL));
+  obj_set_attr_num(vero, 'L', obj_find_anum(c->request, 'S', 0));
   obj_set_attr(vero, 'S', "submitted");
   obj_set_attr(vero, 'X', ext);
   obj_set_attr(vero, 'S', "submitted");
   obj_set_attr(vero, 'X', ext);
-  // FIXME: hash
-  // FIXME: remove old versions from the status file?
   task_submit_part(c->user, tname, pname, ext, last_ver, fb);
   obj_set_attr_num(parto, 'V', last_ver);
   task_unlock_status(c, 1);
   task_submit_part(c->user, tname, pname, ext, last_ver, fb);
   obj_set_attr_num(parto, 'V', last_ver);
   task_unlock_status(c, 1);