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

« back to all changes in this revision

Viewing changes to userdb/users.sql

  • Committer: William Grant
  • Date: 2009-04-28 08:35:40 UTC
  • Revision ID: grantw@unimelb.edu.au-20090428083540-0mjpvly46rbt8o8l
Drop another unneeded ivle.conf import, from ivle.webapp.help.

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
CREATE TABLE project_set (
57
57
    projectsetid  SERIAL PRIMARY KEY NOT NULL,
58
58
    offeringid    INTEGER REFERENCES offering (offeringid) NOT NULL,
59
 
    max_students_per_group  INTEGER NOT NULL DEFAULT 4
 
59
    max_students_per_group  INTEGER
60
60
);
61
61
 
62
62
CREATE TABLE project (
63
63
    projectid   SERIAL PRIMARY KEY NOT NULL,
64
 
    synopsis    VARCHAR,
65
 
    url         VARCHAR,
 
64
    short_name  TEXT NOT NULL,
 
65
    name        TEXT NOT NULL,
 
66
    synopsis    TEXT,
 
67
    url         TEXT,
66
68
    projectsetid  INTEGER REFERENCES project_set (projectsetid) NOT NULL,
67
69
    deadline    TIMESTAMP
68
70
);
69
71
 
 
72
CREATE OR REPLACE FUNCTION check_project_namespacing_insertupdate()
 
73
RETURNS trigger AS '
 
74
    DECLARE
 
75
        oid INTEGER;
 
76
    BEGIN
 
77
        IF TG_OP = ''UPDATE'' THEN
 
78
            IF NEW.projectsetid = OLD.projectsetid AND NEW.short_name = OLD.short_name THEN
 
79
                RETURN NEW;
 
80
            END IF;
 
81
        END IF;
 
82
        SELECT offeringid INTO oid FROM project_set WHERE project_set.projectsetid = NEW.projectsetid;
 
83
        PERFORM 1 FROM project, project_set
 
84
        WHERE project_set.offeringid = oid AND
 
85
              project.projectsetid = project_set.projectsetid AND
 
86
              project.short_name = NEW.short_name;
 
87
        IF found THEN
 
88
            RAISE EXCEPTION ''a project named % already exists in offering ID %'', NEW.short_name, oid;
 
89
        END IF;
 
90
        RETURN NEW;
 
91
    END;
 
92
' LANGUAGE 'plpgsql';
 
93
 
 
94
CREATE TRIGGER check_project_namespacing
 
95
    BEFORE INSERT OR UPDATE ON project
 
96
    FOR EACH ROW EXECUTE PROCEDURE check_project_namespacing_insertupdate();
 
97
 
70
98
CREATE TABLE project_group (
71
99
    groupnm     VARCHAR NOT NULL,
72
100
    groupid     SERIAL PRIMARY KEY NOT NULL,
135
163
);
136
164
 
137
165
CREATE TABLE project_extension (
 
166
    extensionid SERIAL PRIMARY KEY,
138
167
    assessedid  INT4 REFERENCES assessed (assessedid) NOT NULL,
139
168
    deadline    TIMESTAMP NOT NULL,
140
169
    approver    INT4 REFERENCES login (loginid) NOT NULL,
142
171
);
143
172
 
144
173
CREATE TABLE project_submission (
 
174
    submissionid SERIAL PRIMARY KEY,
145
175
    assessedid  INT4 REFERENCES assessed (assessedid) NOT NULL,
146
176
    path        VARCHAR NOT NULL,
147
 
    revision    INT4 NOT NULL
 
177
    revision    INT4 NOT NULL,
 
178
    date_submitted TIMESTAMP NOT NULL,
 
179
    submitter   INT4 REFERENCES login (loginid) NOT NULL
148
180
);
149
181
 
150
182
CREATE TABLE project_mark (