~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to bin/ivle-cloneworksheets

  • Committer: Matt Giuca
  • Date: 2009-04-23 08:21:35 UTC
  • Revision ID: matt.giuca@gmail.com-20090423082135-5lda1g114ocpc73e
Fileservice: Improved the error message "Revision not found" to
    "Revision not found or file not found in revision $n".
    This error appears whenever the file is not in the given revision, even if
    the revision exists in the repository, so the new text should be less
    confusing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import os
22
22
import sys
23
23
 
24
 
import ivle.config
25
24
from ivle.database import get_store, Subject, Semester, Offering, Worksheet
26
25
import ivle.worksheet.utils
27
26
 
30
29
    sys.exit(1)
31
30
 
32
31
if len(sys.argv) != 7:
33
 
    print >> sys.stderr, "usage: %s <oldsubjectcode> <oldyear> <oldsemestercode> "\
34
 
                         "<newsubjectcode> <newyear> <newsemestercode>" \
 
32
    print >> sys.stderr, "usage: %s <oldsubjectcode> <oldyear> <oldsemester> "\
 
33
                         "<newsubjectcode> <newyear> <newsemester>" \
35
34
                         % os.path.basename(sys.argv[0])
36
35
    sys.exit()
37
36
 
38
 
store = get_store(ivle.config.Config())
 
37
store = get_store()
39
38
 
40
39
src = store.find(Offering,
41
40
                 Subject.code == unicode(sys.argv[1]),
42
41
                 Semester.year == unicode(sys.argv[2]),
43
 
                 Semester.code == unicode(sys.argv[3]),
 
42
                 Semester.semester == unicode(sys.argv[3]),
44
43
                 Offering.subject_id == Subject.id,
45
44
                 Offering.semester_id == Semester.id).one()
46
45
 
47
46
dst = store.find(Offering,
48
47
                 Subject.code == unicode(sys.argv[4]),
49
48
                 Semester.year == unicode(sys.argv[5]),
50
 
                 Semester.code == unicode(sys.argv[6]),
 
49
                 Semester.semester == unicode(sys.argv[6]),
51
50
                 Offering.subject_id == Subject.id,
52
51
                 Offering.semester_id == Semester.id).one()
53
52
 
54
53
if dst.worksheets.count() > 0:
55
54
    die('%r already has worksheets - doing nothing' % dst)
56
55
 
57
 
dst.clone_worksheets(src)
 
56
for oldws in src.worksheets:
 
57
    newws = Worksheet()
 
58
    newws.seq_no = oldws.seq_no
 
59
    newws.identifier = oldws.identifier
 
60
    newws.name = oldws.name
 
61
    newws.assessable = oldws.assessable
 
62
    newws.data = oldws.data
 
63
    newws.format = oldws.format
 
64
    newws.offering = dst
 
65
    store.add(newws)
 
66
    ivle.worksheet.utils.update_exerciselist(newws)
58
67
 
59
68
print >> sys.stderr, 'copied %d worksheets from %r to %r' \
60
69
                     % (dst.worksheets.count(), src, dst)