ddd.pdf

262
Project team: Roy Berkeveld, 0608170 Gijs Direks, 0611093 Michael van Duijkeren, 0535368 Neal van den Eertwegh, 0610024 Dion J ansen, 0590077 Koen Kivits, 0608715 Sander Leemans, 0608896 Kevin van der Pol, 0620300 Nick van der Veeken, 0587266 Computer Science, TU/e Project Manager: Wilco Belgraver Thissen, 0514143 Quality Assurance Manager: J elle Hellings, 0592127 Senior management: M ark van den Brand, HG 5.59 Lou Somers, HG 5.36 Advisor: Erik Luit, HG 7.12 Customer: Natalia Sidorova, HG 7.84 Detailed Design Document Eindhoven, January 15, 2010 ddd-1.0.3103

Upload: binary11

Post on 25-Dec-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ddd.pdf

Project team:Roy Berkeveld, 0608170

Gijs Direks, 0611093Michael van Duijkeren, 0535368

Neal van den Eertwegh, 0610024Dion Jansen, 0590077Koen Kivits, 0608715

Sander Leemans, 0608896Kevin van der Pol, 0620300

Nick van der Veeken, 0587266

Computer Science, TU/e

Project Manager:Wilco Belgraver Thissen, 0514143

Quality Assurance Manager:Jelle Hellings, 0592127

Senior management:Mark van den Brand, HG 5.59

Lou Somers, HG 5.36

Advisor:Erik Luit, HG 7.12

Customer:Natalia Sidorova, HG 7.84

Detailed Design DocumentEindhoven, January 15, 2010 ddd-1.0.3103

Page 2: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Abstract

This document contains a description of the implementation details for the QIS system. Thisprogram is part of the Software Engineering Project (2IP35) at Eindhoven University of Technology.The document complies with the Detailed Design Document(ddd) from the Software EngineeringStandard, as set by the European Space Agency.

Page 3: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Contents

1 Introduction 91.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 List of definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4 List of references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Standards and conventions 112.1 Design standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Documentation standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4 Coding standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Software development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Component descriptions 12

4 Build procedure 13

A Source code listings 14A.1 Package qis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

A.1.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15A.2 Package qis.app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

A.2.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17A.2.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

A.3 Package qis.app.auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19A.3.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19A.3.2 Class has right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

A.4 Module qis.app.auth.backends . . . . . . . . . . . . . . . . . . . . . . . . . . . 20A.4.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20A.4.2 Class EmergencySuperuserBackend . . . . . . . . . . . . . . . . . . . . . 20A.4.3 Class DummyBackend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21A.4.4 Class LocalBackend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A.4.5 Class ActiveDirectoryBackend . . . . . . . . . . . . . . . . . . . . . . . . 24

A.5 Module qis.app.context processors . . . . . . . . . . . . . . . . . . . . . . . . . 26A.5.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

A.6 Module qis.app.mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1

Page 4: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.6.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27A.6.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

A.7 Module qis.app.middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28A.7.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28A.7.2 Class RequestAnywhere . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

A.8 Module qis.app.modeladmins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30A.8.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30A.8.2 Class QisModelForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31A.8.3 Class QisModelAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32A.8.4 Class QisAdministrativeModelAdmin . . . . . . . . . . . . . . . . . . . . 36A.8.5 Class SystemYearForm . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.8.6 Class SystemYearAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 39A.8.7 Class PeriodAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41A.8.8 Class SubperiodAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 43A.8.9 Class SubdepartmentForm . . . . . . . . . . . . . . . . . . . . . . . . . 45A.8.10 Class SubdepartmentInline . . . . . . . . . . . . . . . . . . . . . . . . . 46A.8.11 Class DepartmentAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . 47A.8.12 Class ExpertiseGroupInline . . . . . . . . . . . . . . . . . . . . . . . . . 49A.8.13 Class SubdepartmentAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 50A.8.14 Class ExpertiseGroupAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 52A.8.15 Class TargetGroupForm . . . . . . . . . . . . . . . . . . . . . . . . . . . 54A.8.16 Class TargetGroupInline . . . . . . . . . . . . . . . . . . . . . . . . . . . 55A.8.17 Class StudyProgramAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 57A.8.18 Class TargetGroupAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . 58A.8.19 Class TargetGroupNameAdmin . . . . . . . . . . . . . . . . . . . . . . . 61A.8.20 Class TaskTypeAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62A.8.21 Class EducationTypeAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 64A.8.22 Class PositionAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66A.8.23 Class StudyPhaseAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 67A.8.24 Class AlwaysAdministratorEditable . . . . . . . . . . . . . . . . . . . . . 69A.8.25 Class RightForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71A.8.26 Class RightInline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73A.8.27 Class RightSetAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74A.8.28 Class RightAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76A.8.29 Class CourseRelatedAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 78A.8.30 Class CourseAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80A.8.31 Class CourseInstanceForm . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.8.32 Class CourseInstanceAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 83A.8.33 Class TaskAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85A.8.34 Class EducationTaskAdmin . . . . . . . . . . . . . . . . . . . . . . . . . 87A.8.35 Class AssignmentForm . . . . . . . . . . . . . . . . . . . . . . . . . . . 89A.8.36 Class AssignmentAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 90A.8.37 Class NotificationAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 93A.8.38 Class EmploymentInline . . . . . . . . . . . . . . . . . . . . . . . . . . . 95A.8.39 Class EmployeeAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96A.8.40 Class EmploymentAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . 98A.8.41 Class ReportAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

2

Page 5: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9 Module qis.app.models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103A.9.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103A.9.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103A.9.3 Class QisManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104A.9.4 Class QisModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106A.9.5 Class AutoYearQisModel . . . . . . . . . . . . . . . . . . . . . . . . . . 107A.9.6 Class System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108A.9.7 Class Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110A.9.8 Class SystemYearManager . . . . . . . . . . . . . . . . . . . . . . . . . 111A.9.9 Class SystemYear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113A.9.10 Class PeriodManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116A.9.11 Class Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118A.9.12 Class SubperiodManager . . . . . . . . . . . . . . . . . . . . . . . . . . 119A.9.13 Class Subperiod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121A.9.14 Class DepartmentManager . . . . . . . . . . . . . . . . . . . . . . . . . 122A.9.15 Class Department . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124A.9.16 Class SubdepartmentManager . . . . . . . . . . . . . . . . . . . . . . . 126A.9.17 Class Subdepartment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128A.9.18 Class StudyProgramManager . . . . . . . . . . . . . . . . . . . . . . . . 131A.9.19 Class StudyProgram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132A.9.20 Class TargetGroupNameManager . . . . . . . . . . . . . . . . . . . . . . 134A.9.21 Class TargetGroupName . . . . . . . . . . . . . . . . . . . . . . . . . . 135A.9.22 Class TargetGroupManager . . . . . . . . . . . . . . . . . . . . . . . . . 136A.9.23 Class TargetGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138A.9.24 Class CourseManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139A.9.25 Class Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141A.9.26 Class StudyPhaseManager . . . . . . . . . . . . . . . . . . . . . . . . . 143A.9.27 Class StudyPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144A.9.28 Class CourseInstanceManager . . . . . . . . . . . . . . . . . . . . . . . . 145A.9.29 Class CourseInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147A.9.30 Class TaskTypeManager . . . . . . . . . . . . . . . . . . . . . . . . . . . 149A.9.31 Class TaskType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151A.9.32 Class TaskManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152A.9.33 Class Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154A.9.34 Class EducationTaskManager . . . . . . . . . . . . . . . . . . . . . . . . 156A.9.35 Class EducationTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158A.9.36 Class EducationTypeManager . . . . . . . . . . . . . . . . . . . . . . . . 160A.9.37 Class EducationType . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162A.9.38 Class AssignmentManager . . . . . . . . . . . . . . . . . . . . . . . . . 163A.9.39 Class Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165A.9.40 Class EmployeeManager . . . . . . . . . . . . . . . . . . . . . . . . . . . 167A.9.41 Class Employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168A.9.42 Class AbstractRightSetManager . . . . . . . . . . . . . . . . . . . . . . 171A.9.43 Class AbstractRightSet . . . . . . . . . . . . . . . . . . . . . . . . . . . 172A.9.44 Class RightSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174A.9.45 Class AbstractRightManager . . . . . . . . . . . . . . . . . . . . . . . . 176A.9.46 Class AbstractRight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

3

Page 6: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.47 Class Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180A.9.48 Class PositionManager . . . . . . . . . . . . . . . . . . . . . . . . . . . 181A.9.49 Class Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183A.9.50 Class EmploymentManager . . . . . . . . . . . . . . . . . . . . . . . . . 184A.9.51 Class Employment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186A.9.52 Class ExpertiseGroupManager . . . . . . . . . . . . . . . . . . . . . . . 188A.9.53 Class ExpertiseGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190A.9.54 Class ReportManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191A.9.55 Class Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193A.9.56 Class Subdepartment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

A.10 Module qis.app.request cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198A.10.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198A.10.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198A.10.3 Class NotCached . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

A.11 Module qis.app.sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200A.11.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200A.11.2 Class QisSite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

A.12 Package qis.app.templatetags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203A.12.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

A.13 Module qis.app.templatetags.app modify . . . . . . . . . . . . . . . . . . . . . . 204A.13.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204A.13.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

A.14 Module qis.app.templatetags.context operations . . . . . . . . . . . . . . . . . . 205A.14.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

A.15 Module qis.app.templatetags.course list . . . . . . . . . . . . . . . . . . . . . . 206A.15.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206A.15.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

A.16 Module qis.app.templatetags.employee list . . . . . . . . . . . . . . . . . . . . . 207A.16.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207A.16.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

A.17 Module qis.app.templatetags.qis url helpers . . . . . . . . . . . . . . . . . . . . 208A.17.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208A.17.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

A.18 Module qis.app.templatetags.report budget . . . . . . . . . . . . . . . . . . . . 209A.18.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209A.18.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

A.19 Module qis.app.templatetags.report capacity . . . . . . . . . . . . . . . . . . . . 211A.19.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211A.19.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

A.20 Module qis.app.templatetags.report course tasks . . . . . . . . . . . . . . . . . . 212A.20.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212A.20.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

A.21 Module qis.app.templatetags.report course type . . . . . . . . . . . . . . . . . . 213A.21.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213A.21.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

A.22 Module qis.app.templatetags.report csv . . . . . . . . . . . . . . . . . . . . . . 215A.22.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

4

Page 7: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.22.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215A.22.3 Class CSVExport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216A.22.4 Class SimpleNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216A.22.5 Class SimpleNode2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217A.22.6 Class SimpleNode3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218A.22.7 Class SimpleNode4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

A.23 Module qis.app.templatetags.report education workload . . . . . . . . . . . . . . 221A.23.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221A.23.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

A.24 Module qis.app.templatetags.report employee . . . . . . . . . . . . . . . . . . . 223A.24.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223A.24.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

A.25 Module qis.app.templatetags.report employee tasks . . . . . . . . . . . . . . . . 225A.25.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225A.25.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

A.26 Module qis.app.templatetags.report employees . . . . . . . . . . . . . . . . . . . 226A.26.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226A.26.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

A.27 Module qis.app.templatetags.report filters . . . . . . . . . . . . . . . . . . . . . 228A.27.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228A.27.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

A.28 Module qis.app.templatetags.report hours . . . . . . . . . . . . . . . . . . . . . 229A.28.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229A.28.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

A.29 Module qis.app.templatetags.report list . . . . . . . . . . . . . . . . . . . . . . . 230A.29.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230A.29.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

A.30 Module qis.app.templatetags.report own . . . . . . . . . . . . . . . . . . . . . . 231A.30.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231A.30.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

A.31 Module qis.app.templatetags.report own tasks . . . . . . . . . . . . . . . . . . . 233A.31.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233A.31.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

A.32 Module qis.app.templatetags.studyprogram list . . . . . . . . . . . . . . . . . . 234A.32.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234A.32.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

A.33 Module qis.app.templatetags.task list . . . . . . . . . . . . . . . . . . . . . . . . 235A.33.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235A.33.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

A.34 Module qis.app.tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236A.34.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236A.34.2 Class TestViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

A.35 Module qis.app.views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240A.35.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240A.35.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

A.36 Module qis.manage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242A.37 Module qis.manage prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

5

Page 8: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.38 Module qis.runserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244A.38.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

A.39 Module qis.settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245A.39.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

A.40 Module qis.settings prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247A.40.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

A.41 Package qis.tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249A.41.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

A.42 Module qis.tools.compile tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250A.43 Module qis.tools.djangoproject . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

A.43.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251A.44 Module qis.tools.generate passhash . . . . . . . . . . . . . . . . . . . . . . . . . 252

A.44.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252A.45 Module qis.tools.import legacy . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

A.45.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253A.45.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253A.45.3 Class obj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

A.46 Module qis.tools.mailserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254A.47 Module qis.tools.setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

A.47.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255A.47.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255A.47.3 Class ValidationException . . . . . . . . . . . . . . . . . . . . . . . . . . 255A.47.4 Class QisSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

A.48 Module qis.urls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258A.48.1 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

B Requirements traceability matrix 260

6

Page 9: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Document Status Sheet

Document status overview

General

Document title: Detailed Design DocumentIdentification: ddd-1.0.3103Authors: Kevin van der Pol, Roy BerkeveldDocument status: Final

Document history

Version Date Author Reason of change

0.0 08-09-2009 Kevin van der Pol, Roy Berkeveld Created document

1.0 15-01-2010 Kevin van der Pol First version

7

Page 10: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Document Change Records since previous issue

General

Date: 15-01-2010Document title: Detailed Design DocumentIdentification: ddd-1.0.3103

Changes

Page Paragraph Reason to change

8

Page 11: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Chapter 1

Introduction

1.1 Purpose

This document describes the implementation of the QIS system on the most detailed level. Theappendix contains the generated documentation of the source code listings of the QIS system.

1.2 Scope

QIS is an application designed and developed by Group QIS for the Departement of Mathe-matics and Computer Science at the Eindhoven University of Technology. The purpose of theapplication is to support workload division within the department and to support various partiesregarding the management of working hours and tasks, holidays, courses and employees.

1.3 List of definitions

ESA European Space AgencyDDD Detailed Design Document

1.4 List of references

[1] Group QIS. Architectural design document. Technical report, Eindhoven University ofTechnology, Computer Science, November 2009.

[2] Group QIS. Software configuration manangement plan. Technical report, Eindhoven Uni-versity of Technology, Computer Science, September 2009.

[3] Group QIS. Software quality assurance plan. Technical report, Eindhoven University ofTechnology, Computer Science, September 2009.

9

Page 12: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

[4] Group QIS. Software requirements document. Technical report, Eindhoven University ofTechnology, Computer Science, October 2009.

1.5 Overview

The remainder of this document describes implementation standards and conventions, and de-scriptions of each of the modules. Then there is a section on the build procedure of the software.This is not present in the ESA standard, but may be useful to future developers. Finally, theappendix contains the generated documentation of the source code listings of the QIS system.

10

Page 13: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Chapter 2

Standards and conventions

2.1 Design standards

The method used to design the component model is UML. The class diagram can be found in theSRD[4].

2.2 Documentation standards

The documentation standards are described in the SQAP[3].

2.3 Naming conventions

The file naming conventions are described in the SCMP[2].

2.4 Coding standards

The coding standards can be found in the SQAP[3].

2.5 Software development tools

The software development tools are described in the SCMP[2].

11

Page 14: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Chapter 3

Component descriptions

Details about the component descriptions of QIS can be found in the ADD[1].

12

Page 15: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Chapter 4

Build procedure

QIS is interpreted and does not need to be built.

However, during execution, Python dynamically generates bytecode files. Should the system runfrom a readonly directory, those bytecode files need to be generated beforehand. A tool is presentto do just this, you’ll find it in qis/tools/compileall.py. It takes as argument a path tocompile recursively, you should pass it the project’s root directory.

This tool is already run during the application setup and therefore only needs to be run afterchanges have been made to the code. If the application is stored writeable for the executinguser, this tool will never need to be run as Python will regenerate the bytecode when changes aredetected.

13

Page 16: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Appendix A

Source code listings

14

Page 17: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.1 Package qis

A.1.1 Modules

• app: Initialization for the application.(Section A.2, p. 17)

– auth (Section A.3, p. 19)∗ backends: Provides all the details needed to realize proper authentication.

(Section A.4, p. 20)– context processors: A set of request processors that return dictionaries to be merged

into a template context.(Section A.5, p. 26)

– mail: Allows for consistency in mail.(Section A.6, p. 27)

– middleware: Contains custom middleware for QIS(Section A.7, p. 28)

– modeladmins (Section A.8, p. 30)– models (Section A.9, p. 103)– request cache: Provides some useful caching functions that only live during single

requests.(Section A.10, p. 198)

– sites (Section A.11, p. 200)– templatetags (Section A.12, p. 203)∗ app modify (Section A.13, p. 204)∗ context operations (Section A.14, p. 205)∗ course list (Section A.15, p. 206)∗ employee list (Section A.16, p. 207)∗ qis url helpers (Section A.17, p. 208)∗ report budget (Section A.18, p. 209)∗ report capacity (Section A.19, p. 211)∗ report course tasks (Section A.20, p. 212)∗ report course type (Section A.21, p. 213)∗ report csv (Section A.22, p. 215)∗ report education workload (Section A.23, p. 221)∗ report employee (Section A.24, p. 223)∗ report employee tasks (Section A.25, p. 225)∗ report employees (Section A.26, p. 226)∗ report filters (Section A.27, p. 228)∗ report hours (Section A.28, p. 229)∗ report list (Section A.29, p. 230)∗ report own (Section A.30, p. 231)∗ report own tasks (Section A.31, p. 233)∗ studyprogram list (Section A.32, p. 234)∗ task list (Section A.33, p. 235)

– tests: Loads the legacy data from a set of CSV exports into the model.(Section A.34, p. 236)

15

Page 18: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

– views: Global and generic views for QIS(Section A.35, p. 240)

• manage (Section A.36, p. 242)• manage prod (Section A.37, p. 243)• runserver (Section A.38, p. 244)• settings: Django DEBUG settings for QIS project, extends settings prod

(Section A.39, p. 245)• settings prod: Django settings for QIS project.

(Section A.40, p. 247)• tools (Section A.41, p. 249)

– compile tree (Section A.42, p. 250)– djangoproject: Enables importing qis.*, django.* and gives you project settings

(Section A.43, p. 251)– generate passhash: Generates salted password hashes.

(Section A.44, p. 252)– import legacy: Loads the legacy data from a set of CSV exports into the model.

(Section A.45, p. 253)– mailserver (Section A.46, p. 254)– setup (Section A.47, p. 255)

• urls (Section A.48, p. 258)

16

Page 19: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.2 Package qis.app

Initialization for the application.

Currently carries syncdb hooks that set up essential and useful parts of the database.

A.2.1 Modules

• auth (Section A.3, p. 19)– backends: Provides all the details needed to realize proper authentication.

(Section A.4, p. 20)• context processors: A set of request processors that return dictionaries to be merged into

a template context.(Section A.5, p. 26)• mail: Allows for consistency in mail.

(Section A.6, p. 27)• middleware: Contains custom middleware for QIS

(Section A.7, p. 28)• modeladmins (Section A.8, p. 30)• models (Section A.9, p. 103)• request cache: Provides some useful caching functions that only live during single requests.

(Section A.10, p. 198)• sites (Section A.11, p. 200)• templatetags (Section A.12, p. 203)

– app modify (Section A.13, p. 204)– context operations (Section A.14, p. 205)– course list (Section A.15, p. 206)– employee list (Section A.16, p. 207)– qis url helpers (Section A.17, p. 208)– report budget (Section A.18, p. 209)– report capacity (Section A.19, p. 211)– report course tasks (Section A.20, p. 212)– report course type (Section A.21, p. 213)– report csv (Section A.22, p. 215)– report education workload (Section A.23, p. 221)– report employee (Section A.24, p. 223)– report employee tasks (Section A.25, p. 225)– report employees (Section A.26, p. 226)– report filters (Section A.27, p. 228)– report hours (Section A.28, p. 229)– report list (Section A.29, p. 230)– report own (Section A.30, p. 231)– report own tasks (Section A.31, p. 233)– studyprogram list (Section A.32, p. 234)– task list (Section A.33, p. 235)

• tests: Loads the legacy data from a set of CSV exports into the model.

17

Page 20: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

(Section A.34, p. 236)• views: Global and generic views for QIS

(Section A.35, p. 240)

A.2.2 Functions

create system instance(app, created models, verbosity, **kwargs)

create permissions(app, created models, verbosity, **kwargs)

Creates the ’view’ permission for all models.

Technique copied from django.contrib.auth.management.

create groups(app, created models, verbosity, **kwargs)

Initializes the application’s internal groups.

Attaches the set of permissions from qis.app.models.PERMISSIONS to each group.

create task types(app, created models, verbosity, **kwargs)

Fills the database with TaskType objects.

These come straight from qis.app.models.TASK TYPES. They are rather static forthe system, but are used extensively in queries so we prefer to have them in theDB.

initialize right data(app, created models, verbosity, **kwargs)

Fills right data with some initial sets.

These cannot be imported from fixtures, since they require some complex relationsto be set up. We can’t trust fixed ID’s.

initialize report data(app, created models, verbosity, **kwargs)

Create initial set of reports

18

Page 21: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.3 Package qis.app.auth

A.3.1 Modules

• backends: Provides all the details needed to realize proper authentication.(Section A.4, p. 20)

A.3.2 Class has right

object

qis.app.auth.has right

Decorator to verify that the current user has at least one of the given permissions. Raises error classon failure (default Http404).

Methods

init (self, *rights, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

function(self, instance, *args, **kwargs)

call (self, wrapped)

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

19

Page 22: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.4 Module qis.app.auth.backends

Provides all the details needed to realize proper authentication.

Holds extensions to django.contrib.auth in the form of backends and view decorators. Westick to the Django implementation as close as possible to avoid introducing incompatibilitieswith django.contrib.admin, which depends heavily on django.contrib.auth.

You should note that these Backends are designed to be used together and that switchingbetween them will result in a consistent system. Keep this in mind when making modifica-tions or using other backends.

A.4.1 Variables

Name Descriptionbackends Value: (<class

’qis.app.auth.backends.EmergencySuperuserBackend’...

A.4.2 Class EmergencySuperuserBackend

object

qis.app.auth.backends.EmergencySuperuserBackend

Authenticate against the settings EMERGENCY SUPERUSER LOGIN and EMERGENCY SUPERUSER PASSHASH.

Useful for testing and last-resort purposes; grants superuser rights in all models. Fear usingit in production environments, this is a risk to both security and stability! You have morepermissions than any other user with maximum rights, please compensate with intelligence.

Methods

authenticate(self, username=None, password=None)

get user(self, user id)

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

20

Page 23: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Properties

Name DescriptionInherited from object

class

A.4.3 Class DummyBackend

object

django.contrib.auth.backends.ModelBackend

qis.app.auth.backends.DummyBackend

Known Subclasses: qis.app.auth.backends.ActiveDirectoryBackend, qis.app.auth.backends.LocalBackend

Gives any employee that exists access with any password.

This is not an authentication backend. Never use this backend outside local, properlyisolated development!

Designed to be inherited from by other backends, gets the basic user setup in place forothers. All that is missing is password-related stuff.

Make sure inherited classes override check password() and disabled()

Methods

disabled(self )

Always enabled. Use to conditionally fail authentication.

check password(self, user, password)

Always returns True. Use to verify if the entered password is accepted.

We assume user to be a valid User object.

21

Page 24: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

authenticate(self, username=None, password=None)

The username passed as “remote user“ is considered trusted. This methodsimply returns the “User“ object with the given username, creating a new“User“ object where required.

Returns None if an “Employee“ object with the given username is not foundin the database.

Overrides: django.contrib.auth.backends.ModelBackend.authenticate

clean username(self, username)

Performs any cleaning on the ”username” prior to using it to get or createthe user object. Returns the cleaned username.

A username is only valid if an object with that username exists inqis.app.models.Employee.

configure user(self, user)

Configures a user initially to match the Employee attributes and returns it.

Do not call this if the user has already been configured, it will unset theirpassword. Use update user instead.

update user(self, user)

Update a user object to match the Employee settings

get group permissions(self, user obj, add group column=False)

Returns a set of permission strings that this user has through his/her groups.If add group column is True, a second column identifying the group apermission belongs to is added.

Originally from django.contrib.auth.backends.ModelBackend, modified toreturn an optional group column.

Overrides:django.contrib.auth.backends.ModelBackend.get group permissions

get all permissions(self, user obj)

Returns all permissions a user has in the current year.

If no valid year can be found (for non-year related views), return the maximalset.

Overrides: django.contrib.auth.backends.ModelBackend.get all permissions

22

Page 25: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from django.contrib.auth.backends.ModelBackend

get user(), has module perms(), has perm()

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

A.4.4 Class LocalBackend

object

django.contrib.auth.backends.ModelBackend

qis.app.auth.backends.DummyBackend

qis.app.auth.backends.LocalBackend

Performs user authentication of employees via locally stored credentials.

Methods

disabled(self )

Returns whether the backend has been disabled in the system

Overrides: qis.app.auth.backends.DummyBackend.disabled

check password(self, user, password)

Check the password against the user’s stored (encrypted) password.

Overrides: qis.app.auth.backends.DummyBackend.check password

23

Page 26: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

configure user(self, user)

Configures a user initially to match the Employee attributes and returns it.

Do not call this if the user has already been configured, it will reset theirpassword. Use update user instead.

Overrides: qis.app.auth.backends.DummyBackend.configure user

provide user password(self, user)

Generate a random password and mail it to the user

Inherited from qis.app.auth.backends.DummyBackend(Section A.4.3)

authenticate(), clean username(), get all permissions(), get group permissions(),update user()

Inherited from django.contrib.auth.backends.ModelBackend

get user(), has module perms(), has perm()

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

A.4.5 Class ActiveDirectoryBackend

object

django.contrib.auth.backends.ModelBackend

qis.app.auth.backends.DummyBackend

qis.app.auth.backends.ActiveDirectoryBackend

Performs user authentication of employees through Active Directory

24

Page 27: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

disabled(self )

Returns whether the backend has been disabled in the system

Overrides: qis.app.auth.backends.DummyBackend.disabled

check password(self, user, password)

Check the password against Active Directory.

Overrides: qis.app.auth.backends.DummyBackend.check password

Inherited from qis.app.auth.backends.DummyBackend(Section A.4.3)

authenticate(), clean username(), configure user(), get all permissions(), get group permissions(),update user()

Inherited from django.contrib.auth.backends.ModelBackend

get user(), has module perms(), has perm()

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

25

Page 28: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.5 Module qis.app.context processors

A set of request processors that return dictionaries to be merged into a template context.Each function takes the request object as its only parameter and returns a dictionary to addto the context.

These are referenced from the setting TEMPLATE CONTEXT PROCESSORS and used byRequestContext.

A.5.1 Functions

globals(request)

Adds some global variables to the context.

The following are added when available:

* system year, derived from request.path

* return page, from the GET data. Used to return to previous pages.

* as type, from the GET data. The type of assignment we’re changing now.

* cur task, from the GET data. The ID of the task being edited.

* cur employment, from the GET data. The ID of the employment being assigned tasks.

qisperms(request)

Allows the permissions to be accessed in templates.

– view workload, will be accessible by all employees who have a view right inQIS. This will amount to almost all employees. – modify workload, will beaccessible to the employees who can modify workload information for any ofthe subdepartments (the model manager will make sure they are only allowedto modify the subepartment they have rights to). – modify workload, will beaccessible to the employees who can modify course information for any of thesubdepartments (the model manager will make sure they are only allowed tomodify the subepartment they have rights to).

26

Page 29: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.6 Module qis.app.mail

Allows for consistency in mail.

A.6.1 Functions

wrap(text, width)

Wraps given text to at most width characters, preserves newlines.

Newlines must be POSIX ("

").

send(to, subject, content)

Sends mail with provided content, wrapped in nice QIS markup.

Do NOT call this function in repetition, as it will open an SMTP connectionfor every invocation.

send mass QIS mail(provided messagelist)

Sends mail with provided content, wrapped in nice QIS markup. This versionuses the mass mail capability of Django.

Provided messagelist is a tuple of Messages. Message = (subject, body,from email, recipient list) Where recipient list is either a single string, or alist of strings (where each string is a valid email-address)

if from email equals None, it will be replaced with ’[email protected]

A.6.2 Variables

Name DescriptionBODY TEMPLATE Value: ’Dear %s,\n\n%s\n\nPlease

visit QIS at http://localhost:8...

27

Page 30: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.7 Module qis.app.middleware

Contains custom middleware for QIS

Middleware are methods which wrap around all requests of an application. Currently con-tains middleware to ease handling with requests.

A.7.1 Functions

get current request()

Retrieves the current request from a thread-local store.

If called when no request is being handled, it might return a stale requestobject, or an empty class representing an invalid request.

A.7.2 Class RequestAnywhere

object

qis.app.middleware.RequestAnywhere

Middleware that makes the request object available on request.

Stores the request object in a thread-local store. This works since a thread is dedicated tohandling a request - no other requests may interleave and change the thread-local store.Note that after a request has been handled, the object remains.

Methods

process request(self, request)

Stores the given request in a thread local store.

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

continued on next page

28

Page 31: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionclass

29

Page 32: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8 Module qis.app.modeladmins

A.8.1 Variables

Name DescriptionBLANK CHOICE DASH Value: [(’’, ’---------’)]

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

FORMFIELD FOR DBFI-ELD DEFAULTS

Value: {<class

’django.db.models.fields.CharField’>:

{’widget’: ...

HORIZONTAL Value: 1

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

VERTICAL Value: 2

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

30

Page 33: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.2 Class QisModelForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

Known Subclasses: qis.app.modeladmins.AssignmentForm, qis.app.modeladmins.CourseInstanceForm,qis.app.modeladmins.RightForm, qis.app.modeladmins.SubdepartmentForm, qis.app.modeladmins.SystemYearForm,qis.app.modeladmins.TargetGroupForm

Methods

Inherited from django.forms.models.BaseModelForm

init (), clean(), date error message(), save(), unique error message(), vali-date unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formcontinued on next page

31

Page 34: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name Descriptionbase fields Value: {}declared fields Value: {}

A.8.3 Class QisModelAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

Known Subclasses: qis.app.modeladmins.QisAdministrativeModelAdmin, qis.app.modeladmins.AssignmentAdmin,qis.app.modeladmins.CourseRelatedAdmin, qis.app.modeladmins.EmployeeAdmin, qis.app.modeladmins.EmploymentAdmin,qis.app.modeladmins.NotificationAdmin, qis.app.modeladmins.ReportAdmin, qis.app.modeladmins.StudyProgramAdmin,qis.app.modeladmins.TargetGroupAdmin, qis.app.modeladmins.TaskAdmin

Methods

queryset(self, request)

Returns only those objects the current user has permissions for

Overrides: qis.admin.options.ModelAdmin.queryset

no longer permitted(self )

Return True if model operations are no longer permitted.

has add permission(self, request)

Returns True if the given request has permission to add an object.

Overrides: qis.admin.options.ModelAdmin.has add permission

32

Page 35: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

has view permission(self, request, obj=None)

Returns True if the given request has permission to view the given Djangomodel instance.

If ‘obj‘ is None, this should return True if the given request has permission todelete *any* object of the given type.

has change permission(self, request, obj=None)

Returns True if the given request has permission to change the given Djangomodel instance.

If ‘obj‘ is None, this should return True if the given request has permission todelete *any* object of the given type.

Overrides: qis.admin.options.ModelAdmin.has change permission

has delete permission(self, request, obj=None)

Returns True if the given request has permission to delete the given Djangomodel instance.

If ‘obj‘ is None, this should return True if the given request has permission todelete *any* object of the given type.

Overrides: qis.admin.options.ModelAdmin.has delete permission

get model perms(self, request)

Returns a dict of all perms for this model. This dict has the keys “add“,“change“, “delete“ and “view“ mapping to the True/False for each of thoseactions.

Overrides: qis.admin.options.ModelAdmin.get model perms

response add(self, request, obj, post url continue=’../%s/’)

Determines the HttpResponse for the add view stage.

Copied from parent class with view permission modifications.

Overrides: qis.admin.options.ModelAdmin.response add

add view(request, *args, **kwargs)

Generic add view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.add view

33

Page 36: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

change view(request, *args, **kwargs)

Generic change view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.change view

delete view(request, *args, **kwargs)

Generic delete view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.delete view

changelist view(request, *args, **kwargs)

The ’change list’ admin view for this model.

Copied from parent class with view permission modifications. Also addedsystem year in context.

Overrides: qis.admin.options.ModelAdmin.changelist view

formfield for dbfield(self, db field, **kwargs)

Hook for specifying the form Field instance for a given database Fieldinstance.

If kwargs are given, they’re passed to the form Field’s constructor.

Overridden to make use of RelatedFieldWidgetWrapper depend on modeladd * permissions.

Overrides: qis.admin.options.BaseModelAdmin.formfield for dbfield

formfield for foreignkey(self, db field, request, **kwargs)

Limits changing related objects to those we are permitted to.

This is often not good enough. We may have view permissions for thingsthat we shouldn’t ever assign stuff to. To be overridden wherever this maybe the case.

Overrides: qis.admin.options.BaseModelAdmin.formfield for foreignkey

get urls(self )

Overrides: qis.admin.options.ModelAdmin.get urls

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),

34

Page 37: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionmsa extended edit enable Value: False

history view Value: None

Inherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change form template,change list template, date hierarchy, delete confirmation template,inlines, list display, list display links, list editable, list filter, list per page,list select related, object history template, ordering, save as, save on top,search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

35

Page 38: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.4 Class QisAdministrativeModelAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

Known Subclasses: qis.app.modeladmins.AlwaysAdministratorEditable, qis.app.modeladmins.DepartmentAdmin,qis.app.modeladmins.EducationTypeAdmin, qis.app.modeladmins.ExpertiseGroupAdmin, qis.app.modeladmins.PeriodAdmin,qis.app.modeladmins.PositionAdmin, qis.app.modeladmins.StudyPhaseAdmin, qis.app.modeladmins.SubdepartmentAdmin,qis.app.modeladmins.SubperiodAdmin, qis.app.modeladmins.SystemYearAdmin, qis.app.modeladmins.TargetGroupNameAdmin,qis.app.modeladmins.TaskTypeAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

36

Page 39: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionchange list template Value:

’qis/administrative change list.html’

change form template Value:’qis/administrative change form.html’

history view Value: None

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display, list display links,list editable, list filter, list per page, list select related,object history template, ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

37

Page 40: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.5 Class SystemYearForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.SystemYearForm

Methods

clean(self )

Validates whether Ends >= Begins, and raises validation error otherwise.

Overrides: django.forms.forms.BaseForm.clean

Inherited from django.forms.models.BaseModelForm

init (), date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

38

Page 41: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

A.8.6 Class SystemYearAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.SystemYearAdmin

Methods

has delete permission(self, request, obj=None)

Returns True if the given request has permission to delete the system year.

If ‘obj‘ is None, this should return True if the given request has permission todelete *any* system year.

Overrides: qis.admin.options.ModelAdmin.has delete permission

39

Page 42: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

has add permission(self, request)

Returns True if the given request has permission to add an object.

Overrides: qis.admin.options.ModelAdmin.has add permission extit(inheriteddocumentation)

change view(self, request, object id, extra context=None,system year=None)

Generic change view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.change view

delete view(self, request, object id, extra context=None,system year=None)

Generic delete view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.delete view

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), changelist view(), formfield for dbfield(), formfield for foreignkey(),get model perms(), get urls(), has change permission(), has view permission(),no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdmin

continued on next page

40

Page 43: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’name’,

’begins’, ’ends’, ’fte amount...

list display Value: [’name’, ’begins’, ’ends’,

’all subdepartments closed’]

ordering Value: [’begins’, ’ends’, ’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list filter, list per page, list select related, object history template,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.7 Class PeriodAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.PeriodAdmin

41

Page 44: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’name’)}))list display Value: [’name’]

ordering Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)continued on next page

42

Page 45: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionchange form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list filter, list per page, list select related, object history template,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.8 Class SubperiodAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.SubperiodAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

43

Page 46: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’period’,

’name’, ’weeks’)}))list filter Value: [’period’]

list display Value: [’name’, ’period’]

ordering Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list per page, list select related, object history template, save as,save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

44

Page 47: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.9 Class SubdepartmentForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.SubdepartmentForm

Methods

init (self, *args, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from django.forms.models.BaseModelForm

clean(), date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

45

Page 48: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

A.8.10 Class SubdepartmentInline

object

qis.admin.options.BaseModelAdmin

qis.admin.options.InlineModelAdmin

qis.admin.options.TabularInline

qis.app.modeladmins.SubdepartmentInline

Methods

Inherited from qis.admin.options.InlineModelAdmin

init (), get fieldsets(), get formset()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for dbfield(), formfield for foreignkey(), form-field for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

46

Page 49: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Properties

Name DescriptionInherited from qis.admin.options.InlineModelAdminmediaInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionextra Value: 1

fields Value: [’name’]

Inherited from qis.admin.options.TabularInlinetemplateInherited from qis.admin.options.InlineModelAdminfk name, max num, verbose name, verbose name pluralInherited from qis.admin.options.BaseModelAdminexclude, fieldsets, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.11 Class DepartmentAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.DepartmentAdmin

47

Page 50: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

queryset(self, request)

Returns only those objects the current user has permissions for

Overrides: qis.admin.options.ModelAdmin.queryset extit(inheriteddocumentation)

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

48

Page 51: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionfieldsets Value: ((None, {’fields’:

(’name’)}))inlines Value: [<class

’qis.app.modeladmins.SubdepartmentInline’>]

search fields Value: [’name’]

list display Value: [’name’]

ordering Value: [’name’]

msa extended edit enable Value: True

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, list display links, list editable, list filter,list per page, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.12 Class ExpertiseGroupInline

object

qis.admin.options.BaseModelAdmin

qis.admin.options.InlineModelAdmin

qis.admin.options.TabularInline

qis.app.modeladmins.ExpertiseGroupInline

Methods

Inherited from qis.admin.options.InlineModelAdmin

init (), get fieldsets(), get formset()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for dbfield(), formfield for foreignkey(), form-field for manytomany()

Inherited from object

49

Page 52: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from qis.admin.options.InlineModelAdminmediaInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionextra Value: 3

fields Value: [’name’]

Inherited from qis.admin.options.TabularInlinetemplateInherited from qis.admin.options.InlineModelAdminfk name, max num, verbose name, verbose name pluralInherited from qis.admin.options.BaseModelAdminexclude, fieldsets, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.13 Class SubdepartmentAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.SubdepartmentAdmin

50

Page 53: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

queryset(self, request)

Returns only those objects the current user has permissions for

Overrides: qis.admin.options.ModelAdmin.queryset extit(inheriteddocumentation)

change view(request, *args, **kwargs)

Generic change view page with additional system year attribute and now alsowith a close perm which checks if you have change permissions for thatsubdepartments

Overrides: qis.admin.options.ModelAdmin.change view

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), changelist view(), delete view(), formfield for dbfield(), formfield for foreignkey(),get model perms(), get urls(), has add permission(), has change permission(),has delete permission(), has view permission(), no longer permitted(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsets

continued on next page

51

Page 54: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from object

class

Class Variables

Name Descriptionchange form template Value:

’qis/subdepartment change form.html’

fieldsets Value: ((None, {’fields’:(’department’, ’name’)}))

inlines Value: [<class

’qis.app.modeladmins.ExpertiseGroupInline’>]

search fields Value: [’name’]

list filter Value: [’department’]

list display Value: [’name’, ’department’]

ordering Value: [’name’]

msa extended edit enable Value: True

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change list template, history viewInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, list display links, list editable, list per page,list select related, object history template, save as, save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.14 Class ExpertiseGroupAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.ExpertiseGroupAdmin

52

Page 55: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’subdepartment’, ’name’)}))search fields Value: [’name’]

list filter Value: [’subdepartment’]

list display Value: [’name’, ’subdepartment’]

continued on next page

53

Page 56: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionordering Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list per page, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.15 Class TargetGroupForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.TargetGroupForm

Methods

init (self, *args, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from django.forms.models.BaseModelForm

clean(), date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

54

Page 57: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

A.8.16 Class TargetGroupInline

object

qis.admin.options.BaseModelAdmin

qis.admin.options.InlineModelAdmin

qis.admin.options.StackedInline

qis.app.modeladmins.TargetGroupInline

55

Page 58: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

Inherited from qis.admin.options.InlineModelAdmin

init (), get fieldsets(), get formset()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for dbfield(), formfield for foreignkey(), form-field for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from qis.admin.options.InlineModelAdminmediaInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionextra Value: 1

filter horizontal Value: [’course instances’]

Inherited from qis.admin.options.StackedInlinetemplateInherited from qis.admin.options.InlineModelAdminfk name, max num, verbose name, verbose name pluralInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

56

Page 59: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.17 Class StudyProgramAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.StudyProgramAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmin

continued on next page

57

Page 60: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptiondeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’name’)}))search fields Value: [’name’]

list display Value: [’name’]

ordering Value: [’name’]

inlines Value: [<class

’qis.app.modeladmins.TargetGroupInline’>]

actions Value: None

list per page Value: 20

change form template Value: ’qis/programs change form.html’

delete confirmation templ-ate

Value:’qis/programs delete confirmation.html’

change list template Value: ’qis/programs change list.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions on bottom, actions on top, date hierarchy, list display links,list editable, list filter, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.18 Class TargetGroupAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.TargetGroupAdmin

58

Page 61: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

add view(request, *args, **kwargs)

Call super’s add view and make sure it redirects to studyprogram after saving

Overrides: qis.admin.options.ModelAdmin.add view

change view(request, *args, **kwargs)

Call super’s change view and make sure it redirects to studyprogram aftersaving

Overrides: qis.admin.options.ModelAdmin.change view

delete view(request, *args, **kwargs)

Call super’s delete view and make sure it redirects to studyprogram after it’sdone

Overrides: qis.admin.options.ModelAdmin.delete view

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

changelist view(), formfield for dbfield(), formfield for foreignkey(), get model perms(),get urls(), has add permission(), has change permission(), has delete permission(),has view permission(), no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name Descriptionmedia

continued on next page

59

Page 62: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’name’,

’study program’, ’course inst...

filter horizontal Value: [’course instances’]

search fields Value: [’name’]

list filter Value: [’study program’]

list display Value: [’name’, ’study program’]

ordering Value: [’name’]

change form template Value:’qis/targetgroup change form.html’

delete confirmation templ-ate

Value:’qis/targetgroup delete confirmation.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change list template,date hierarchy, inlines, list display links, list editable, list per page,list select related, object history template, save as, save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter vertical, formfield overrides, prepopulated fields,radio fields, raw id fields

60

Page 63: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.19 Class TargetGroupNameAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.TargetGroupNameAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdmin

continued on next page

61

Page 64: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfields Value: (’name’)

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display, list display links,list editable, list filter, list per page, list select related,object history template, ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fieldsets, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.20 Class TaskTypeAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.TaskTypeAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

62

Page 65: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’type’,

’name’)}))ordering Value: [’name’]

list display Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdmin

continued on next page

63

Page 66: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list filter, list per page, list select related, object history template,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.21 Class EducationTypeAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.EducationTypeAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

64

Page 67: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’subdepartment’, ’name’)}))search fields Value: [’name’]

list filter Value: [’subdepartment’]

list display Value: [’name’]

ordering Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list per page, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

65

Page 68: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.22 Class PositionAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.PositionAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdmin

continued on next page

66

Page 69: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’name’)}))ordering Value: [’name’]

list display Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list filter, list per page, list select related, object history template,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.23 Class StudyPhaseAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.StudyPhaseAdmin

67

Page 70: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’name’)}))ordering Value: [’name’]

list display Value: [’name’]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)continued on next page

68

Page 71: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionchange form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list filter, list per page, list select related, object history template,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.24 Class AlwaysAdministratorEditable

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.AlwaysAdministratorEditable

Known Subclasses: qis.app.modeladmins.RightAdmin, qis.app.modeladmins.RightSetAdmin

Methods

has add permission(self, request)

Returns True if the given request has permission to add an object.

Overrides: qis.admin.options.ModelAdmin.has add permission

has delete permission(self, request, obj=None)

Returns True if the given request has permission to delete an object.

Overrides: qis.admin.options.ModelAdmin.has delete permission

69

Page 72: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

has change permission(self, request, obj=None)

Returns True if the given request has permission to change an object.

Overrides: qis.admin.options.ModelAdmin.has change permission

has view permission(self, request, obj=None)

Returns True if the given request has permission to view an object.

Overrides: qis.app.modeladmins.QisModelAdmin.has view permission

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

70

Page 73: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display, list display links,list editable, list filter, list per page, list select related,object history template, ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

A.8.25 Class RightForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.RightForm

Methods

clean(self )

Validates whether all rights are set according to the user’s rightset, anddisplays an error message near the violating field, otherwise.

Overrides: django.forms.forms.BaseForm.clean

71

Page 74: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

init (self, *args, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from django.forms.models.BaseModelForm

date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

72

Page 75: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.26 Class RightInline

object

qis.admin.options.BaseModelAdmin

qis.admin.options.InlineModelAdmin

qis.admin.options.TabularInline

qis.app.modeladmins.RightInline

Methods

Inherited from qis.admin.options.InlineModelAdmin

init (), get fieldsets(), get formset()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for dbfield(), formfield for foreignkey(), form-field for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from qis.admin.options.InlineModelAdminmediaInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionextra Value: 1

Inherited from qis.admin.options.TabularInlinecontinued on next page

73

Page 76: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptiontemplateInherited from qis.admin.options.InlineModelAdminfk name, max num, verbose name, verbose name pluralInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

A.8.27 Class RightSetAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.AlwaysAdministratorEditable

qis.app.modeladmins.RightSetAdmin

Methods

member count(self, model)

Inherited from qis.app.modeladmins.AlwaysAdministratorEditable(Section A.8.24)

has add permission(), has change permission(), has delete permission(), has view permission()

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),

74

Page 77: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionlist display Value: [’ unicode ’, ’default’,

’member count’, ’view own work...

fieldsets Value: ((None, {’fields’: (’name’,

’default’)}), (’Permissions’,...

inlines Value: [<class

’qis.app.modeladmins.RightInline’>]

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, list display links, list editable, list filter,list per page, list select related, object history template, ordering,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

75

Page 78: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.28 Class RightAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.QisAdministrativeModelAdmin

qis.app.modeladmins.AlwaysAdministratorEditable

qis.app.modeladmins.RightAdmin

Methods

Inherited from qis.app.modeladmins.AlwaysAdministratorEditable(Section A.8.24)

has add permission(), has change permission(), has delete permission(), has view permission()

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

76

Page 79: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionlist display Value: [’employee’, ’rightset’,

’view expertisegroup workload ob...

list filter Value: [’rightset’,

’view expertisegroup workload object’,

’view...

ordering Value: [’employee’]

fieldsets Value: ((None, {’fields’:(’rightset’, ’employee’)}), (’Right

ob...

Inherited from qis.app.modeladmins.QisAdministrativeModelAdmin (Section A.8.4)change form template, change list template, history viewInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, date hierarchy,delete confirmation template, inlines, list display links, list editable,list per page, list select related, object history template, save as,save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

77

Page 80: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.29 Class CourseRelatedAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.CourseRelatedAdmin

Known Subclasses: qis.app.modeladmins.CourseAdmin, qis.app.modeladmins.CourseInstanceAdmin,qis.app.modeladmins.EducationTaskAdmin

Class that handles add view/change view/delete view and form validation for AdminModelsthat are accessed from the Course changelist

Methods

form isvalid(self, request)

Determines if the form is valid

Mostly copied from parent class with view permission modifications.

add view(request, *args, **kwargs)

Determines the HttpResponse for the add view stage.

Mostly copied from parent class.

Overrides: qis.admin.options.ModelAdmin.add view

change view(request, *args, **kwargs)

Determines the HttpResponse for the change view stage.

Mostly copied from parent class.

Overrides: qis.admin.options.ModelAdmin.change view

delete view(request, *args, **kwargs)

Determines the HttpResponse for the delete view stage.

Overrides: qis.admin.options.ModelAdmin.delete view

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

78

Page 81: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

changelist view(), formfield for dbfield(), formfield for foreignkey(), get model perms(),get urls(), has add permission(), has change permission(), has delete permission(),has view permission(), no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionchange form template Value:

’qis/courserelated change form.html’

delete confirmation templ-ate

Value:’qis/courserelated delete confirmation.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdmin

continued on next page

79

Page 82: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionactions, actions on bottom, actions on top, change list template,date hierarchy, inlines, list display, list display links, list editable,list filter, list per page, list select related, object history template,ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

A.8.30 Class CourseAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.CourseRelatedAdmin

qis.app.modeladmins.CourseAdmin

Methods

formfield for foreignkey(self, db field, request, **kwargs)

Limits changing related objects to those we are permitted to.

This is often not good enough. We may have view permissions for thingsthat we shouldn’t ever assign stuff to. To be overridden wherever this maybe the case.

Overrides: qis.admin.options.BaseModelAdmin.formfield for foreignkeyextit(inherited documentation)

Inherited from qis.app.modeladmins.CourseRelatedAdmin(Section A.8.29)

add view(), change view(), delete view(), form isvalid()

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

changelist view(), formfield for dbfield(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

80

Page 83: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’code’,

’name’, ’given by’, ’descript...

list per page Value: 20

actions Value: None

ordering Value: [’code’]

list display Value: [’code’, ’name’, ’credits’]

search fields Value: [’code’, ’name’]

change list template Value: ’qis/course change list.html’

change list results Value:’qis/course change list results.html’

Inherited from qis.app.modeladmins.CourseRelatedAdmin (Section A.8.29)change form template, delete confirmation templateInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enable

continued on next page

81

Page 84: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.admin.options.ModelAdminactions on bottom, actions on top, date hierarchy, inlines,list display links, list editable, list filter, list select related,object history template, save as, save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.31 Class CourseInstanceForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.CourseInstanceForm

Methods

init (self, *args, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from django.forms.models.BaseModelForm

clean(), date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

82

Page 85: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

A.8.32 Class CourseInstanceAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.CourseRelatedAdmin

qis.app.modeladmins.CourseInstanceAdmin

Methods

target groups(self )

83

Page 86: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.app.modeladmins.CourseRelatedAdmin(Section A.8.29)

add view(), change view(), delete view(), form isvalid()

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

changelist view(), formfield for dbfield(), formfield for foreignkey(), get model perms(),get urls(), has add permission(), has change permission(), has delete permission(),has view permission(), no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’course’,

’responsibles’, ’subperiods...

list display Value: [’ unicode ’]

Inherited from qis.app.modeladmins.CourseRelatedAdmin (Section A.8.29)change form template, delete confirmation template

continued on next page

84

Page 87: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change list template,date hierarchy, inlines, list display links, list editable, list filter,list per page, list select related, object history template, ordering,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.33 Class TaskAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.TaskAdmin

Methods

formfield for foreignkey(self, db field, request, **kwargs)

Limits changing related objects to those we are permitted to.

This is often not good enough. We may have view permissions for thingsthat we shouldn’t ever assign stuff to. To be overridden wherever this maybe the case.

Overrides: qis.admin.options.BaseModelAdmin.formfield for foreignkeyextit(inherited documentation)

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),get model perms(), get urls(), has add permission(), has change permission(),has delete permission(), has view permission(), no longer permitted(), query-set(), response add()

85

Page 88: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’name’,

’subdepartment’, ’type’, ’des...

list display Value: [’name’, ’type’,

’subdepartment’, ’hours’]

search fields Value: [’name’]

actions Value: None

ordering Value: [’name’]

list per page Value: 20

list filter Value: [’type’, ’subdepartment’]

change list template Value: ’qis/task change list.html’

change list results Value:’qis/task change list results.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enable

continued on next page

86

Page 89: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.admin.options.ModelAdminactions on bottom, actions on top, change form template,date hierarchy, delete confirmation template, inlines, list display links,list editable, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.34 Class EducationTaskAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.CourseRelatedAdmin

qis.app.modeladmins.EducationTaskAdmin

Methods

formfield for foreignkey(self, db field, request, **kwargs)

Limits changing related objects to those we are permitted to.

This is often not good enough. We may have view permissions for thingsthat we shouldn’t ever assign stuff to. To be overridden wherever this maybe the case.

Overrides: qis.admin.options.BaseModelAdmin.formfield for foreignkeyextit(inherited documentation)

Inherited from qis.app.modeladmins.CourseRelatedAdmin(Section A.8.29)

add view(), change view(), delete view(), form isvalid()

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

changelist view(), formfield for dbfield(), get model perms(), get urls(), has add permission(),

87

Page 90: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’course instance provisional’,

’educa...

list display Value: [’course instance definitive’,

’course instance provision...

Inherited from qis.app.modeladmins.CourseRelatedAdmin (Section A.8.29)change form template, delete confirmation templateInherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdmin

continued on next page

88

Page 91: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionactions, actions on bottom, actions on top, change list template,date hierarchy, inlines, list display links, list editable, list filter,list per page, list select related, object history template, ordering,save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.35 Class AssignmentForm

object

django.utils.encoding.StrAndUnicode

django.forms.forms.BaseForm

django.forms.models.BaseModelForm

django.forms.models.ModelForm

qis.app.modeladmins.QisModelForm

qis.app.modeladmins.AssignmentForm

Methods

init (self, *args, **kwargs)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from django.forms.models.BaseModelForm

clean(), date error message(), save(), unique error message(), validate unique()

Inherited from django.forms.forms.BaseForm

getitem (), iter (), unicode (), add initial prefix(), add prefix(), as p(),as table(), as ul(), full clean(), has changed(), hidden fields(), is multipart(),is valid(), non field errors(), visible fields()

Inherited from django.utils.encoding.StrAndUnicode

89

Page 92: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

str ()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr ()

Properties

Name Descriptionmedia Provide a description of all media required to

render the widgets on this formInherited from django.forms.forms.BaseFormchanged data, errorsInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.modeladmins.QisModelForm (Section A.8.2)base fields, declared fields

A.8.36 Class AssignmentAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.AssignmentAdmin

Class that handles add view/change view/delete view and form validation for assignments.Primarily exists to return to the page from which the add/change/delete request originated.

90

Page 93: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

changelist view(self, request, extra context=None, system year=None)

The ’change list’ admin view for this model.

Copied from parent class with view permission modifications. Also addedsystem year in context.

Overrides: qis.admin.options.ModelAdmin.changelist view extit(inheriteddocumentation)

form isvalid(self, request)

Determines if the form is valid

Mostly copied from parent class with view permission modifications.

add view(request, *args, **kwargs)

Determines the HttpResponse for the add view stage. Takes the defaultresponse object and changes the URL according to GET-data.

Mostly copied from parent class.

Overrides: qis.admin.options.ModelAdmin.add view

change view(request, *args, **kwargs)

Determines the HttpResponse for the change view stage. Takes the defaultresponse object and changes the URL according to GET-data.

Calls parent class, only copied relevant sections we needed to override.

Overrides: qis.admin.options.ModelAdmin.change view

delete view(request, *args, **kwargs)

Determines the HttpResponse for the delete view stage. Takes the defaultresponse object and changes the URL according to GET-data.

Overrides: qis.admin.options.ModelAdmin.delete view

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

formfield for dbfield(), formfield for foreignkey(), get model perms(), get urls(),has add permission(), has change permission(), has delete permission(), has view permission(),no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

91

Page 94: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionchange form template Value:

’qis/assignmentrelated change form.html’

delete confirmation templ-ate

Value:’qis/assignmentrelated delete confirmation.html’

ordering Value: (’task’)

fieldsets Value: ((None, {’fields’: (’task’,

’employment’, ’hours’, ’share...

list display Value: [’task’, ’employment’,

’hours’]

change list results Value:’qis/task change list result.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdmin

continued on next page

92

Page 95: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionactions, actions on bottom, actions on top, change list template,date hierarchy, inlines, list display links, list editable, list filter,list per page, list select related, object history template, save as,save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.37 Class NotificationAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.NotificationAdmin

Methods

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), get urls(), has add permission(),has change permission(), has delete permission(), has view permission(), no longer permitted(),queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

93

Page 96: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’: (’date’,

’object’)}))list display Value: [’date’, ’object’]

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change form template,change list template, date hierarchy, delete confirmation template,inlines, list display links, list editable, list filter, list per page,list select related, object history template, ordering, save as, save on top,search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

94

Page 97: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.8.38 Class EmploymentInline

object

qis.admin.options.BaseModelAdmin

qis.admin.options.InlineModelAdmin

qis.admin.options.StackedInline

qis.app.modeladmins.EmploymentInline

Methods

formfield for foreignkey(self, db field, request, **kwargs)

Get a form Field for a ForeignKey.

Overrides: qis.admin.options.BaseModelAdmin.formfield for foreignkeyextit(inherited documentation)

get formset(self, request, obj=None, **kwargs)

Limits employments to those we may modify

Overrides: qis.admin.options.InlineModelAdmin.get formset

Inherited from qis.admin.options.InlineModelAdmin

init (), get fieldsets()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for dbfield(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from qis.admin.options.InlineModelAdminmediaInherited from qis.admin.options.BaseModelAdmin

continued on next page

95

Page 98: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptiondeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionextra Value: 1

Inherited from qis.admin.options.StackedInlinetemplateInherited from qis.admin.options.InlineModelAdminfk name, max num, verbose name, verbose name pluralInherited from qis.admin.options.BaseModelAdminexclude, fields, fieldsets, filter horizontal, filter vertical,formfield overrides, prepopulated fields, radio fields, raw id fields

A.8.39 Class EmployeeAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.EmployeeAdmin

Methods

get urls(self )

Overrides: qis.admin.options.ModelAdmin.get urls

view view(request, *args, **kwargs)

Show the current user’s employee overview page

edit details view(*args, **kw)

Edit employee details view. Uses non-model forms for clarity.

96

Page 99: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), has add permission(), has change permission(),has delete permission(), has view permission(), no longer permitted(), query-set(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name Descriptiondeclared editdetails fieldse-tsmediaInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionlist display Value: (’ unicode ’)

search fields Value: [’user name’, ’first name’,

’last name’]

ordering Value: (’last name’)

list per page Value: 20

continued on next page

97

Page 100: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptioninlines Value: [<class

’qis.app.modeladmins.EmploymentInline’>]

fieldsets Value: ((’Personal Information’,

{’fields’: (’first name’, ’last...

editdetails fields Value:(’receive notifications employee’,

’receive notifications...

change list template Value: ’qis/employee change list.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change form template,date hierarchy, delete confirmation template, list display links,list editable, list filter, list select related, object history template, save as,save on topInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.40 Class EmploymentAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.EmploymentAdmin

Methods

change view(self, request, object id, extra context=None,system year=None)

Generic change view page with additional system year attribute

Overrides: qis.admin.options.ModelAdmin.change view extit(inheriteddocumentation)

98

Page 101: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

changelist view(self, request, extra context=None, system year=None)

The ’change list’ admin view for this model.

Copied from parent class with view permission modifications. Also addedsystem year in context.

Overrides: qis.admin.options.ModelAdmin.changelist view extit(inheriteddocumentation)

get urls(self )

Overrides: qis.admin.options.ModelAdmin.get urls

fill research hours(self, request, object id, extra context=None,system year=None)

fill all research hours(self, request, extra context=None,system year=None)

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), delete view(), formfield for dbfield(), formfield for foreignkey(), get model perms(),has add permission(), has change permission(), has delete permission(), has view permission(),no longer permitted(), queryset(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name Descriptionmedia

continued on next page

99

Page 102: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionfieldsets Value: ((None, {’fields’:

(’expertise group’, ’position’,

’fte’,...

list display Value: [’employee’,

’expertise group’]

change form template Value:’qis/employee sub change form.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions, actions on bottom, actions on top, change list template,date hierarchy, delete confirmation template, inlines, list display links,list editable, list filter, list per page, list select related,object history template, ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

A.8.41 Class ReportAdmin

object

qis.admin.options.BaseModelAdmin

qis.admin.options.ModelAdmin

qis.app.modeladmins.QisModelAdmin

qis.app.modeladmins.ReportAdmin

100

Page 103: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get urls(self )

Overrides: qis.admin.options.ModelAdmin.get urls

report context(self, report, request, system year)

Return context variables needed for rendering the given report

render view(self, request, context, add=False, change=False,form url=’’, obj=None, system year=None)

view csv(request, *args, **kwargs)

view view(request, *args, **kwargs)

The ’view’ admin view for this model.

Inherited from qis.app.modeladmins.QisModelAdmin(Section A.8.3)

add view(), change view(), changelist view(), delete view(), formfield for dbfield(),formfield for foreignkey(), get model perms(), has add permission(), has change permission(),has delete permission(), has view permission(), no longer permitted(), query-set(), response add()

Inherited from qis.admin.options.ModelAdmin

call (), init (), action checkbox(), construct change message(), get action(),get action choices(), get actions(), get changelist form(), get changelist formset(),get fieldsets(), get form(), get formsets(), log addition(), log change(), log deletion(),message user(), render change form(), response action(), response change(), save form(),save formset(), save model()

Inherited from qis.admin.options.BaseModelAdmin

formfield for choice field(), formfield for manytomany()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name Descriptionmedia

continued on next page

101

Page 104: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.admin.options.ModelAdminurlsInherited from qis.admin.options.BaseModelAdmindeclared fieldsetsInherited from object

class

Class Variables

Name Descriptionactions Value: None

title Value: ’’

fieldsets Value: ((None, {’fields’: (’name’,

’template’, ’targetmodel’, ’g...

view template Value: ’qis/report generator.html’

change list template Value: ’qis/report change list.html’

Inherited from qis.app.modeladmins.QisModelAdmin (Section A.8.3)history view, msa extended edit enableInherited from qis.admin.options.ModelAdminactions on bottom, actions on top, change form template,date hierarchy, delete confirmation template, inlines, list display,list display links, list editable, list filter, list per page, list select related,object history template, ordering, save as, save on top, search fieldsInherited from qis.admin.options.BaseModelAdminexclude, fields, filter horizontal, filter vertical, formfield overrides,prepopulated fields, radio fields, raw id fields

102

Page 105: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9 Module qis.app.models

A.9.1 Functions

superuser override(wrapped)

Decorator to grant superusers full object permissions

get m2m join queryset(qs or model, field)

Returns a join between Model and the related model via field.

qs or model is a base queryset or the model class. field is theManyToManyField’s attribute name.

Only the primary key fields of join models should be used, the rest is omittedfor performance concerns. Model’s primary key field is accessible via the ’pk’property, the related model’s primary key field is set via the M2M’s reversename (often singularfieldname id).

This offers performance improvements with M2M-fields. Before, you had todo a query for every object’s M2M-field you’d wish to resolve, this gets themall at once.

Idea from http://www.caktusgroup.com/blog/2009/09/28/custom-joins-with-djangos-queryjoin/

A.9.2 Variables

Name DescriptionTASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

MAXYEAR Value: 9999

MINYEAR Value: 1

continued on next page

103

Page 106: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptiondatetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

A.9.3 Class QisManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

Known Subclasses: qis.app.models.AbstractRightManager, qis.app.models.AbstractRightSetManager,qis.app.models.AssignmentManager, qis.app.models.CourseInstanceManager, qis.app.models.CourseManager,qis.app.models.DepartmentManager, qis.app.models.EducationTaskManager, qis.app.models.EducationTypeManager,qis.app.models.EmployeeManager, qis.app.models.EmploymentManager, qis.app.models.ExpertiseGroupManager,qis.app.models.PeriodManager, qis.app.models.PositionManager, qis.app.models.ReportManager,qis.app.models.StudyPhaseManager, qis.app.models.StudyProgramManager, qis.app.models.SubdepartmentManager,qis.app.models.SubperiodManager, qis.app.models.SystemYearManager, qis.app.models.TargetGroupManager,qis.app.models.TargetGroupNameManager, qis.app.models.TaskManager, qis.app.models.TaskTypeManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

104

Page 107: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name Descriptionslotnames Value: []

Inherited from django.db.models.manager.Managercreation counter

105

Page 108: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.4 Class QisModel

object

django.db.models.base.Model

qis.app.models.QisModel

Known Subclasses: qis.app.models.AbstractRight, qis.app.models.AbstractRightSet, qis.app.models.Assignment,qis.app.models.AutoYearQisModel, qis.app.models.Course, qis.app.models.CourseInstance,qis.app.models.Task, qis.app.models.EducationType, qis.app.models.Employee, qis.app.models.Employment,qis.app.models.ExpertiseGroup, qis.app.models.Notification, qis.app.models.Report, qis.app.models.Subdepartment,qis.app.models.Subperiod, qis.app.models.System, qis.app.models.SystemYear, qis.app.models.TargetGroup,qis.app.models.TaskType

Methods

objects(...)

all objects(...)

get view permission(self )

Returns the name of the django view permission for this model

can view(self )

Returns True if this object can be viewed by the current user.

can modify(self )

Returns True if this object can be modified by the current user.

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

106

Page 109: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

A.9.5 Class AutoYearQisModel

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

Known Subclasses: qis.app.models.Department, qis.app.models.Period, qis.app.models.Position,qis.app.models.StudyPhase, qis.app.models.StudyProgram, qis.app.models.TargetGroupName

A QisModel that automatically fills the system year field when missing.

Subclasses must define a system year field of type ForeignKey to SystemYear.

Methods

save(self, force insert=False, force update=False)

Saves the current model to the database, filling SystemYear when not set

Overrides: django.db.models.base.Model.save

all objects(...)

Overrides: qis.app.models.QisModel.all objects

objects(...)

Overrides: qis.app.models.QisModel.objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

107

Page 110: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

A.9.6 Class System

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.System

System object - only one exists in the entire application.

Global runtime-configurable settings are fields of this object.

Methods

get()

Get is a guaranteed way to fetch the one System object we have

all objects(...)

Overrides: qis.app.models.QisModel.all objects

get id display(*moreargs, **morekwargs)

108

Page 111: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

objects(...)

Overrides: qis.app.models.QisModel.objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name DescriptionID Value: 1

id Value: models.IntegerField(choices=

((ID, str(ID)),), default= I...

connector nt enabled Value: models.BooleanField(default=

False)

employees Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

notifications Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

reports Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

rightsets Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

system years Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

task types Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

109

Page 112: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.7 Class Notification

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Notification

Notification(id, system id, date, object)

Methods

all objects(...)

Overrides: qis.app.models.QisModel.all objects

get next by date(*moreargs, **morekwargs)

get previous by date(*moreargs, **morekwargs)

objects(...)

Overrides: qis.app.models.QisModel.objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

continued on next page

110

Page 113: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionclass

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’notifications’, ...

date Value: models.DateField()

object Value: models.CharField(max length=

255)

A.9.8 Class SystemYearManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.SystemYearManager

Methods

current(self )

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

111

Page 114: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

ordered(self )

Return a queryset of system years ordered by begins.

This list is cached.

Inherited from qis.app.models.QisManager(Section A.9.3)

get query set(), view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

112

Page 115: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.9 Class SystemYear

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.SystemYear

SystemYear(id, system id, copy from year id, name, begins, ends, fte amount)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

is closed(self )

Returns a boolean with the closed status of the year

current closed for user()

Returns True if the current SystemYear doesn’t have any subdepartmentsopen on which the user has modify permissions.

all subdepartments closed(self )

Returns a string with the closed status of the year

copy year(self, other)

Copies all related data of another year to self

predecessor(self )

Returns the SystemYear directly preceeding the current year

successor(self )

Returns the SystemYear directly succeeding the current year

113

Page 116: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

get default()

Returns the most recent open SystemYear, preferably not from the future.

This function always returns a valid year. If one doesn’t exist, create adefault one.

get current(request=None)

Returns the name of the currently selected SystemYear.

The name is not checked for validity. The request is inspected for this towork. If request is omitted, we will retrieve it from the thread-local store. Wecannot guarantee the return value to be None if no request is being handledor when no such year is applicable.

get(name)

Returns the SystemYear object matching the given name.

This value is cached for every request.

get current object()

Returns the current SystemYear object

get or 404(system year)

Returns the system year object if it exists, raises Http404 otherwise

unicode (self )

save(self, force insert=False, force update=False)

Custom save method used to keep the dummy copy unset and callcopy year() when needed

Overrides: django.db.models.base.Model.save

all objects(...)

Overrides: qis.app.models.QisModel.all objects

get next by begins(*moreargs, **morekwargs)

get next by ends(*moreargs, **morekwargs)

114

Page 117: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

get previous by begins(*moreargs, **morekwargs)

get previous by ends(*moreargs, **morekwargs)

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’system years’, d...

copy from year Value: models.ForeignKey(’self’,

verbose name= "Copy from year",...

name Value: models.SlugField(unique= True,

help text= "Allowed charac...

begins Value: models.DateField(unique= True)

ends Value: models.DateField()

fte amount Value:models.IntegerField(verbose name=

’Hours per fte’)

re current Value: re.compile(r’^/([-\w]+)’)departments Value:

<django.db.models.fields.related.ForeignRelatedObjectsDes...

periods Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

continued on next page

115

Page 118: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionpositions Value:

<django.db.models.fields.related.ForeignRelatedObjectsDes...

study phase Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

study programs Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

systemyear set Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

target group names Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.10 Class PeriodManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.PeriodManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

116

Page 119: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

117

Page 120: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.11 Class Period

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.Period

Period(id, system year id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

save()

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

118

Page 121: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’periods’)

name Value: models.CharField(max length=

255)

subperiods Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.12 Class SubperiodManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.SubperiodManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

119

Page 122: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Manager

continued on next page

120

Page 123: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptioncreation counter

A.9.13 Class Subperiod

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Subperiod

Subperiod(id, period id, name, weeks)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.Model

continued on next page

121

Page 124: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionpkInherited from object

class

Class Variables

Name Descriptionperiod Value: models.ForeignKey(Period,

related name= ’subperiods’)

name Value: models.CharField(max length=

255)

weeks Value: models.IntegerField(blank=

True, null= True)

course instances Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

education tasks Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

A.9.14 Class DepartmentManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.DepartmentManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

122

Page 125: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

permitted(self, *args, **kwargs)

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self, *args, **kwargs)

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

administrative permitted(self, *args, **kwargs)

Inherited from qis.app.models.QisManager(Section A.9.3)

modify permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

123

Page 126: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.15 Class Department

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.Department

Department(id, system year id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

can view(self )

Returns True if this object can be viewed by the current user.

Overrides: qis.app.models.QisModel.can view

can modify(self )

Returns True if this object can be modified by the current user.

Overrides: qis.app.models.QisModel.can modify

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

124

Page 127: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

save()

Inherited from qis.app.models.QisModel(Section A.9.4)

get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’departments’)

name Value: models.CharField(max length=

255)

subdepartments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

view workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

125

Page 128: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.16 Class SubdepartmentManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.SubdepartmentManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self, *args, **kwargs)

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self, *args, **kwargs)

All subdepartments we have view permissions for.

Also takes inheritance from Department into account.

Overrides: qis.app.models.QisManager.view permitted

view workload permitted(self, *args, **kwargs)

All subdepartments we can view the workload for.

Also takes inheritance from Department into account.

Introduced because view permitted does not guarantee you have workloadpermissions. Used in reports per subdepartment.

126

Page 129: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

modify permitted(self, *args, **kwargs)

All subdepartments we can modify in some way.

If alsoclosed=True, we include subdepartments that are closed which wouldotherwise be modifyable.

Overrides: qis.app.models.QisManager.modify permitted

modify workload permitted(self, *args, **kwargs)

All subdepartments we can modify the workload for.

If alsoclosed=True, we include subdepartments that are closed which wouldotherwise be modifyable.

modify courseinf permitted(self, *args, **kwargs)

All subdepartments we can modify the course information for.

If alsoclosed=True, we include subdepartments that are closed which wouldotherwise be modifyable.

administrative permitted(self, *args, **kwargs)

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variablescontinued on next page

127

Page 130: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Description

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.17 Class Subdepartment

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Subdepartment

Subdepartment(id, department id, name, formula, custom education type attributes, cus-tom course attributes, closed)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

can view(self )

Returns True if this object can be viewed by the current user.

Overrides: qis.app.models.QisModel.can view

can modify(self )

Returns True if this object can be modified by the current user.

Overrides: qis.app.models.QisModel.can modify

128

Page 131: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

send notifications courses(self, system year=None, send mail=True)

Sends a notification to all employees whose courseinstaces are about tochange. Supposed to be called just before make courses definitive destroysall provisional data.

Also sends an email to all persons with right ’edit subdepartment workload’

Latest version should also send mails to people with assignments related tothese courses, as well as the expertisegroupsleaders of related eg’s.

if send mail is false, no mails will actually be sent. The function will returnall mails it sends (or would send).

send notifications tasks(self, system year=None, send mail=True)

Sends a notification to all employees whose assignments are about to change.Also mail expertisegroup leaders. Supposed to be called just beforemake tasks definitive destroys all provisional data.

if send mail is false, no mails will actually be sent. The function will stillreturn all mails it creates.

changed courseinstances(self, system year=None)

Returns a list of courseinstaces which will have been changed since the lastdefinitive version.

changed assignments(self, system year=None)

Returns a list of assignments which will have been changed since the lastdefinitive version.

close year(self )

make assignments definitive(self )

make course instances definitive(self )

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

129

Page 132: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptiondepartment Value: models.ForeignKey(Department,

related name= ’subdepartmen...

name Value: models.CharField(max length=

255)

formula Value: models.TextField(blank= True,

null= True)

custom education type at-tributes

Value: models.TextField(blank= True,

null= True)

custom course attributes Value: models.TextField(blank= True,

null= True)

closed Value: models.BooleanField(default=

False)

courses Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

education types Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

expertise groups Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

modify courseinf rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

modify workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

continued on next page

130

Page 133: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptiontasks Value:

<django.db.models.fields.related.ForeignRelatedObjectsDes...

view workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.18 Class StudyProgramManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.StudyProgramManager

Methods

get query set(self )

Returns all Study Programs of the current year

Overrides: django.db.models.manager.Manager.get query set

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

131

Page 134: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.19 Class StudyProgram

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.StudyProgram

StudyProgram(id, system year id, name)

132

Page 135: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

save()

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’study progra...

name Value: models.CharField(max length=

255)

target groups Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

133

Page 136: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.20 Class TargetGroupNameManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.TargetGroupNameManager

Methods

get query set(self )

Returns all Target Group Names of the current year

Overrides: django.db.models.manager.Manager.get query set

permitted(self )

We can view them all

Overrides: qis.app.models.QisManager.permitted

modify permitted(self )

We can modify everything, so long as we have the model permission

Overrides: qis.app.models.QisManager.modify permitted

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

134

Page 137: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.21 Class TargetGroupName

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.TargetGroupName

TargetGroupName(id, system year id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

save()

Inherited from qis.app.models.QisModel(Section A.9.4)

135

Page 138: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’target group...

name Value: models.CharField(max length=

255)

target groups Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.22 Class TargetGroupManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.TargetGroupManager

136

Page 139: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns all Target Groups of the current year

Overrides: django.db.models.manager.Manager.get query set

permitted(self )

We can view them all.

Overrides: qis.app.models.QisManager.permitted

modify permitted(self )

We can modify only those related to the studyprograms we can modify.

Overrides: qis.app.models.QisManager.modify permitted

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamescontinued on next page

137

Page 140: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.manager.Managercreation counter

A.9.23 Class TargetGroup

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.TargetGroup

TargetGroup(id, study program id, name id)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

getCourseInstances(self )

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

138

Page 141: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionstudy program Value:

models.ForeignKey(StudyProgram,

related name= ’target gro...

course instances Value:models.ManyToManyField(’CourseInstance’,

related name= ’t...

name Value:models.ForeignKey(TargetGroupName,

related name= ’target ...

A.9.24 Class CourseManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.CourseManager

Methods

get query set(self )

Returns all courses of the current year

Overrides: django.db.models.manager.Manager.get query set

139

Page 142: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Only return definitive versions of things we can view.

Can only have view permitted if we don’t have modify permitted.

Overrides: qis.app.models.QisManager.view permitted

modify permitted(self )

Only return provisional versions of things we can modify

Overrides: qis.app.models.QisManager.modify permitted

modify workload permitted(self )

Returns the courses we have modify subdepartment workload rights for.

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

140

Page 143: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.25 Class Course

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Course

Course(id, given by id, code, name, description, custom attributes values, credits, given externally)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

can modify workload(self )

Returns True if this object’s workload can be modified by the current user.

get course instances(self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

141

Page 144: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptiongiven by Value:

models.ForeignKey(Subdepartment,

related name= ’courses’)

predecessors Value: models.ManyToManyField(’self’,

symmetrical= False, relate...

code Value: models.CharField(max length=

255)

name Value: models.CharField(max length=

255)

description Value: models.TextField(blank= True)

custom attributes values Value: models.TextField(blank= True)

credits Value: models.FloatField()

given externally Value: models.BooleanField(default=

False)

course instances Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

successors Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

142

Page 145: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.26 Class StudyPhaseManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.StudyPhaseManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Everyone can view the complete list of study phases

Overrides: qis.app.models.QisManager.permitted

modify permitted(self )

The entire list of study phases can be modified if we have model changepermissions

Overrides: qis.app.models.QisManager.modify permitted

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

143

Page 146: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.27 Class StudyPhase

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.StudyPhase

StudyPhase(id, system year id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

save()

144

Page 147: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’study phase’)

name Value: models.CharField(max length=

255)

course instances Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.28 Class CourseInstanceManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.CourseInstanceManager

145

Page 148: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Return a list with every permitted CourseInstance once, but either theprovisional or definitve version, never both.

Overrides: qis.app.models.QisManager.permitted

view permitted(self )

Only return definitive versions of things we can view.

We can view everything we can view EducationTasks for or if we areresponsible for the current course.

This method is tuned to be called from CourseManager.view permitted. It isnot neccessarily disjoint from modify permitted.

Overrides: qis.app.models.QisManager.view permitted

modify permitted(self )

Only return provisional versions of things we can modify

Overrides: qis.app.models.QisManager.modify permitted

provisional(self )

Return all provisional courseinstances associated with permitted courses.

Would recommend you do not use this without considering your design.

Useful for selecting courseinstances when editing education tasks without themodify subdepartment courseinf permissions.

definitive(self )

Return all definitive courseinstances associated with permitted courses.

Would recommend you do not use this without considering your design.

146

Page 149: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.29 Class CourseInstance

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.CourseInstance

CourseInstance(id, course id, study phase id, definitive, private remark, public remark, given to externals)

147

Page 150: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

get subperiods(self )

Get all subperiods in which this course instance is given, return it as a list ofstrings.

get responsibles(self )

Get all responsible employees linked to this course instance, return it asstring.

get tasks(self )

Get all education tasks linked to this course instance, return it as a list witheducation tasks.

delete(self )

Overrides: django.db.models.base.Model.delete

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), pre-pare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.Model

continued on next page

148

Page 151: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionpkInherited from object

class

Class Variables

Name Descriptioncourse Value: models.ForeignKey(Course,

related name= ’course instances’)

responsibles Value:models.ManyToManyField(’Employee’,

related name= ’respons...

subperiods Value:models.ManyToManyField(Subperiod,

related name= ’course i...

study phase Value: models.ForeignKey(StudyPhase,

related name= ’course insta...

definitive Value: models.BooleanField(default=

False)

private remark Value: models.TextField(blank= True)

public remark Value: models.TextField(blank= True)

given to externals Value: models.BooleanField(default=

False)

education tasks definitive Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

education tasks provision-al

Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

target groups Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

A.9.30 Class TaskTypeManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.TaskTypeManager

149

Page 152: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

continued on next page

150

Page 153: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionclass

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.31 Class TaskType

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.TaskType

TaskType(id, system id, type, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

151

Page 154: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’task types’, def...

type Value: models.CharField(max length=

255, unique= True)

name Value: models.CharField(max length=

255)

tasks Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.32 Class TaskManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.TaskManager

152

Page 155: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),

153

Page 156: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.33 Class Task

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Task

Known Subclasses: qis.app.models.EducationTask

Task(id, subdepartment id, type id, name, description, hours, public remark, private remark)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

154

Page 157: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsubdepartment Value:

models.ForeignKey(Subdepartment,

related name= ’tasks’)

type Value: models.ForeignKey(TaskType,

related name= ’tasks’, blank=...

employments Value:models.ManyToManyField(’Employment’,

through= ’Assignment...

name Value: models.CharField(max length=

255)

description Value: models.TextField(blank= True)

hours Value: models.IntegerField(blank=

False, null= True, default= 0)

public remark Value: models.TextField(blank= True)

private remark Value: models.TextField(blank= True)

assignments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

educationtask Value:<django.db.models.fields.related.SingleRelatedObjectDescr...

155

Page 158: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.34 Class EducationTaskManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.EducationTaskManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

156

Page 159: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

modify workload permitted(self )

modify courseinf permitted(self )

add assignment permitted(self )

Return all education tasks to which we can add assignments

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

157

Page 160: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.35 Class EducationTask

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Task

qis.app.models.EducationTask

EducationTask(id, subdepartment id, type id, name, description, hours, public remark, pri-vate remark, task ptr id, course instance definitive id, course instance provisional id, edu-cation type id, number of employees, to be removed, weekly hours)

Methods

get course instance(self )

objects(...)

Overrides: qis.app.models.QisModel.objects

get number of assigned(self )

Get the number of employees that are assigned to a particular task troughassignments

get assigned employments(self )

get subperiods(self )

Get all subperiods in which this education task is given, return it as a list ofstrings.

can modify courseinf(self )

Returns True if we can modify course information of the current educationtask.

can add assignment(self )

Returns True if we can add assignments to the current education task.

158

Page 161: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

save(self, force insert=False, force update=False)

Custom save method used to set the task type of an education task toeducationtask

Overrides: django.db.models.base.Model.save

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.Task(Section A.9.33)

unicode ()

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name Descriptioncourse instanceInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptioncourse instance definitive Value:

models.ForeignKey(CourseInstance,

blank= True, null= True...

course instance provisiona-l

Value:models.ForeignKey(CourseInstance,

blank= False, null= Fal...

continued on next page

159

Page 162: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptioneducation type Value:

models.ForeignKey(’EducationType’,

related name= ’educati...

subperiods Value:models.ManyToManyField(Subperiod,

related name= ’educatio...

number of employees Value: models.IntegerField(blank=

True, null= True, verbose name...

to be removed Value: models.BooleanField(default=

False, verbose name= ’Remove...

weekly hours Value: models.FloatField(blank= True,

null= True)

task ptr Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

Inherited from qis.app.models.Task (Section A.9.33)assignments, description, educationtask, employments, hours, name,private remark, public remark, subdepartment, type

A.9.36 Class EducationTypeManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.EducationTypeManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

160

Page 163: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Covers both view permitted and modify permitted

Overrides: qis.app.models.QisManager.view permitted

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamescontinued on next page

161

Page 164: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.manager.Managercreation counter

A.9.37 Class EducationType

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.EducationType

EducationType(id, subdepartment id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

162

Page 165: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsubdepartment Value:

models.ForeignKey(Subdepartment,

related name= ’education...

name Value: models.CharField(max length=

255)

education tasks Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.38 Class AssignmentManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.AssignmentManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

163

Page 166: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

all unique(self )

Returns a list of all assignments, but only one of definitive or provisional foreach.

Provisional assignments are returned only for the employments that thecurrent user may modify.

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

definitive permitted(self )

Definitive versions of all permitted assignments

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

164

Page 167: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.39 Class Assignment

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Assignment

Assignment(id, task id, employment id, hours, share, externally funded, definitive)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

Assignment = Task for Employment

all objects(...)

Overrides: qis.app.models.QisModel.all objects

165

Page 168: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptiontask Value: models.ForeignKey(Task,

related name= ’assignments’, help...

employment Value:models.ForeignKey(’Employment’,

related name= ’assignments’)

hours Value: models.IntegerField(blank=

True, null= True, default= 0)

share Value: models.FloatField(blank= True,

null= True, default= 0)

externally funded Value: models.BooleanField(default=

False)

definitive Value: models.BooleanField(default=

False)

166

Page 169: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.40 Class EmployeeManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.EmployeeManager

Methods

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

modify permitted(self )

We can modify all employees if we have modify subdepartment workload

Overrides: qis.app.models.QisManager.modify permitted

Inherited from qis.app.models.QisManager(Section A.9.3)

get query set()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

167

Page 170: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.41 Class Employee

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Employee

Employee(id, system id, first name, last name, email, public remark, private remark, user name,receive notifications employee, receive notifications expertise group)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

get self(user=None)

Returns the employee object associated with the current logged-in user.

168

Page 171: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

get user(self )

Returns the django.contrib.auth User associated with this Employee, or Noneif it doesn’t exist yet.

An employee that has never logged in will not have a django User associated.This is intended. User objects are created only on an as-required basis andwill be configured from an Employee automatically by the authenticationbackend.

get rights(self )

has right(self, right)

update user(self )

Ensures that the related User object matches the Employee.

save(self, force insert=False, force update=False)

Saves the current instance. Override this in a subclass if you want to controlthe saving process.

The ’force insert’ and ’force update’ parameters can be used to insist thatthe ”save” must be an SQL insert or update (or equivalent for non-SQLbackends), respectively. Normally, they should not be set.

Overrides: django.db.models.base.Model.save extit(inherited documentation)

get related course instances(self )

Returns a list of courseinstances where this employee is responsible for, orwhere this employee is assigned to.

post delete(sender, **kwargs)

Removes the corresponding django User

unicode (self )

getEmployments(self )

total hours assigned(self )

is employed(self )

169

Page 172: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’employees’, defa...

expertise groups Value:models.ManyToManyField(’ExpertiseGroup’,

through= ’Employ...

right sets Value:models.ManyToManyField(’RightSet’,

through= ’Right’, rela...

first name Value: models.CharField(max length=

255)

last name Value: models.CharField(max length=

255)

email Value: models.EmailField(blank= True)

public remark Value: models.TextField(blank= True)

private remark Value: models.TextField(blank= True)

user name Value: models.CharField(max length=

255, unique= True)

continued on next page

170

Page 173: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionreceive notifications empl-oyee

Value: models.BooleanField(default=

True, verbose name= "Receive...

receive notifications exper-tise group

Value: models.BooleanField(default=

False, verbose name= "Receiv...

employments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

responsible for Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.42 Class AbstractRightSetManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.AbstractRightSetManager

Methods

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

get query set(), view permitted()

171

Page 174: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.43 Class AbstractRightSet

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AbstractRightSet

Known Subclasses: qis.app.models.RightSet

A configuration of permissions known under a certain name.

The boolean right fields are supposed to be added via subclassing.

172

Page 175: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

save(self, force insert=False, force update=False)

Saves the current instance. Override this in a subclass if you want to controlthe saving process.

The ’force insert’ and ’force update’ parameters can be used to insist thatthe ”save” must be an SQL insert or update (or equivalent for non-SQLbackends), respectively. Normally, they should not be set.

Overrides: django.db.models.base.Model.save extit(inherited documentation)

post delete(sender, **kwargs)

Removes the corresponding django Group

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

173

Page 176: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’rightsets’, defa...

name Value: models.CharField(max length=

50, unique= True)

default Value: models.BooleanField(default=

False)

RIGHTS Value: [’view own workload’,

’view expertisegroup workload’,

’vi...

x Value:(’modify system administration’,

’MSA’, [’change system’,...

A.9.44 Class RightSet

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AbstractRightSet

qis.app.models.RightSet

RightSet(id, system id, name, default, view own workload, view expertisegroup workload,view subdepartment workload, view department workload, modify subdepartment workload,modify subdepartment courseinf, modify system administration)

Methods

all objects(...)

Overrides: qis.app.models.QisModel.all objects

objects(...)

Overrides: qis.app.models.QisModel.objects

Inherited from qis.app.models.AbstractRightSet(Section A.9.43)

174

Page 177: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

unicode (), post delete(), save()

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionemployees Value:

<django.db.models.fields.related.ManyRelatedObjectsDescri...

rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

system Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

Inherited from qis.app.models.AbstractRightSet (Section A.9.43)RIGHTS, default, name, x

175

Page 178: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.45 Class AbstractRightManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.AbstractRightManager

Methods

get query set(self )

We won’t consider any Rights that have pointers to objects outside thecurrent year.

Rights that have no pointers to any objecs act as if they are global for allyears.

Overrides: django.db.models.manager.Manager.get query set

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),

176

Page 179: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.46 Class AbstractRight

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AbstractRight

Known Subclasses: qis.app.models.Right

Associates an Employee with a RightSet and provides the specific objects a RightSet appliesto.

The boolean right object fields are supposed to be added via subclassing.

177

Page 180: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

save(self, force insert=False, force update=False)

Saves the current instance. Override this in a subclass if you want to controlthe saving process.

The ’force insert’ and ’force update’ parameters can be used to insist thatthe ”save” must be an SQL insert or update (or equivalent for non-SQLbackends), respectively. Normally, they should not be set.

Overrides: django.db.models.base.Model.save extit(inherited documentation)

post delete(sender, **kwargs)

Updates the corresponding django Group association for a user

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

178

Page 181: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Class Variables

Name Descriptionrightset Value: models.ForeignKey(RightSet,

related name= ’rights’)

employee Value: models.ForeignKey(Employee,

related name= ’rights’)

OBJECTS

def view workload object(self):

if self.rightset.view department workload:

return view department workload object

if self.rightset.view subdepartment workload:

return view subdepartment workload object

if self.rightset.view expertisegroup workload:

return view expertisegroup workload object

if self.rightset.view own workload:

return self.employee

return None

def modify workload object(self):

if self.rightset.modify subdepartment workload:

return modify subdepartment workload object

return None

def modify courseinformation object(self):

if self.rightset.modify subdepartment courseinf:

return modify subdepartment courseinf object

return None

Value:[’view expertisegroup workload object’,

’view subdepartme...

x Value:(’modify subdepartment courseinf object’,

’MSDCI object’,...

179

Page 182: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.47 Class Right

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AbstractRight

qis.app.models.Right

Right(id, rightset id, employee id, view expertisegroup workload object id, view subdepartment workload object id,view department workload object id, modify subdepartment workload object id, modify subdepartment courseinf object id)

Methods

all objects(...)

Overrides: qis.app.models.QisModel.all objects

objects(...)

Overrides: qis.app.models.QisModel.objects

Inherited from qis.app.models.AbstractRight(Section A.9.46)

unicode (), post delete(), save()

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.Model

continued on next page

180

Page 183: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionpkInherited from object

class

Class Variables

Name Descriptionemployee Value:

<django.db.models.fields.related.ReverseSingleRelatedObje...

modify subdepartment co-urseinf object

Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

modify subdepartment wo-rkload object

Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

rightset Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

view department workloa-d object

Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

view expertisegroup workl-oad object

Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

view subdepartment workl-oad object

Value:<django.db.models.fields.related.ReverseSingleRelatedObje...

Inherited from qis.app.models.AbstractRight (Section A.9.46)OBJECTS, x

A.9.48 Class PositionManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.PositionManager

181

Page 184: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from qis.app.models.QisManager(Section A.9.3)

view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

continued on next page

182

Page 185: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionclass

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.49 Class Position

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.AutoYearQisModel

qis.app.models.Position

Position(id, system year id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.AutoYearQisModel(Section A.9.5)

save()

Inherited from qis.app.models.QisModel(Section A.9.4)

183

Page 186: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem year Value: models.ForeignKey(SystemYear,

related name= ’positions’)

name Value: models.CharField(max length=

255)

employments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.50 Class EmploymentManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.EmploymentManager

184

Page 187: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

view permitted(self )

Disjoint from modify permitted

Overrides: qis.app.models.QisManager.view permitted

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

185

Page 188: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.51 Class Employment

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Employment

Employment(id, expertise group id, employee id, position id, fte, start, ends, education ratio,research ratio, management ratio)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

get other ratio(self )

total available hours(self, sy=None)

Returns the total available hours in a year considering start and end times ofan employment.

This does not consider any current assignments.

186

Page 189: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

fill research hours(self )

Adjusts the research hours to fit available hours.

Returns whether the update was possible.

Not to be called in repetition.

fill all research hours()

Adjusts all research hours of all employments to fit available hours.

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionexpertise group Value:

models.ForeignKey(’ExpertiseGroup’,

related name= ’employ...

employee Value: models.ForeignKey(Employee,

related name= ’employments’)

continued on next page

187

Page 190: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionposition Value: models.ForeignKey(Position,

related name= ’employments’, ...

fte Value: models.FloatField()

start Value: models.DateField(blank= True,

null= True)

ends Value: models.DateField(blank= True,

null= True)

education ratio Value: models.FloatField()

research ratio Value: models.FloatField()

management ratio Value: models.FloatField()

assignments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

tasks Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

A.9.52 Class ExpertiseGroupManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.ExpertiseGroupManager

Methods

get query set(self )

Returns a new QuerySet object. Subclasses can override this method toeasily customize the behavior of the Manager.

Overrides: django.db.models.manager.Manager.get query set extit(inheriteddocumentation)

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

188

Page 191: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

view permitted(self )

Returns the objects the current user has view permissions for.

Having modify permissions does not imply having view permissions.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.view permitted extit(inheriteddocumentation)

view workload permitted(self )

modify permitted(self )

Returns the objects the current user has modify permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.modify permitted extit(inheriteddocumentation)

modify workload permitted(self )

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variablescontinued on next page

189

Page 192: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Description

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

A.9.53 Class ExpertiseGroup

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.ExpertiseGroup

ExpertiseGroup(id, subdepartment id, name)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

190

Page 193: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsubdepartment Value:

models.ForeignKey(Subdepartment,

related name= ’expertise...

name Value: models.CharField(max length=

255)

employees Value:<django.db.models.fields.related.ManyRelatedObjectsDescri...

employments Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

view workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

A.9.54 Class ReportManager

object

django.db.models.manager.Manager

qis.app.models.QisManager

qis.app.models.ReportManager

191

Page 194: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

permitted(self )

Returns the objects the current user has any permissions for.

Intended to be overridden, the default is very restrictive.

Overrides: qis.app.models.QisManager.permitted extit(inheriteddocumentation)

modify permitted(self )

We need to return this, otherwise the ’changelist’ won’t show anything.

Overrides: qis.app.models.QisManager.modify permitted

Inherited from qis.app.models.QisManager(Section A.9.3)

get query set(), view permitted()

Inherited from django.db.models.manager.Manager

init (), aggregate(), all(), annotate(), complex filter(), contribute to class(),count(), create(), dates(), defer(), distinct(), exclude(), extra(), filter(), get(),get empty query set(), get or create(), in bulk(), iterator(), latest(), none(),only(), order by(), reverse(), select related(), update(), values(), values list()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from qis.app.models.QisManager (Section A.9.3)

slotnamesInherited from django.db.models.manager.Managercreation counter

192

Page 195: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.9.55 Class Report

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Report

Report(id, system id, name, definition, targetmodel, template, extramodel, group)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

get definition(self )

set definition(self, definition)

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

get group display(*moreargs, **morekwargs)

Inherited from qis.app.models.QisModel(Section A.9.4)

can modify(), can view(), get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

193

Page 196: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptionsystem Value: models.ForeignKey(System,

related name= ’reports’, defaul...

name Value: models.CharField(max length=

255)

definition Value: models.TextField()

targetmodel Value: models.CharField(max length=

50)

template Value: models.CharField(max length=

100)

extramodel Value: models.CharField(max length=

50, blank= True)

group Value: models.IntegerField(choices=

REPORT GROUPS)

A.9.56 Class Subdepartment

object

django.db.models.base.Model

qis.app.models.QisModel

qis.app.models.Subdepartment

Subdepartment(id, department id, name, formula, custom education type attributes, cus-tom course attributes, closed)

Methods

objects(...)

Overrides: qis.app.models.QisModel.objects

194

Page 197: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

can view(self )

Returns True if this object can be viewed by the current user.

Overrides: qis.app.models.QisModel.can view

can modify(self )

Returns True if this object can be modified by the current user.

Overrides: qis.app.models.QisModel.can modify

send notifications courses(self, system year=None, send mail=True)

Sends a notification to all employees whose courseinstaces are about tochange. Supposed to be called just before make courses definitive destroysall provisional data.

Also sends an email to all persons with right ’edit subdepartment workload’

Latest version should also send mails to people with assignments related tothese courses, as well as the expertisegroupsleaders of related eg’s.

if send mail is false, no mails will actually be sent. The function will returnall mails it sends (or would send).

send notifications tasks(self, system year=None, send mail=True)

Sends a notification to all employees whose assignments are about to change.Also mail expertisegroup leaders. Supposed to be called just beforemake tasks definitive destroys all provisional data.

if send mail is false, no mails will actually be sent. The function will stillreturn all mails it creates.

changed courseinstances(self, system year=None)

Returns a list of courseinstaces which will have been changed since the lastdefinitive version.

changed assignments(self, system year=None)

Returns a list of assignments which will have been changed since the lastdefinitive version.

close year(self )

make assignments definitive(self )

195

Page 198: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

make course instances definitive(self )

unicode (self )

all objects(...)

Overrides: qis.app.models.QisModel.all objects

Inherited from qis.app.models.QisModel(Section A.9.4)

get view permission()

Inherited from django.db.models.base.Model

eq (), hash (), init (), ne (), reduce (), repr (), str (), delete(),prepare database save(), save(), save base(), serializable value()

Inherited from object

delattr (), getattribute (), new (), reduce ex (), setattr ()

Properties

Name DescriptionInherited from django.db.models.base.ModelpkInherited from object

class

Class Variables

Name Descriptiondepartment Value: models.ForeignKey(Department,

related name= ’subdepartmen...

name Value: models.CharField(max length=

255)

formula Value: models.TextField(blank= True,

null= True)

custom education type at-tributes

Value: models.TextField(blank= True,

null= True)

custom course attributes Value: models.TextField(blank= True,

null= True)

closed Value: models.BooleanField(default=

False)

continued on next page

196

Page 199: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptioncourses Value:

<django.db.models.fields.related.ForeignRelatedObjectsDes...

education types Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

expertise groups Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

modify courseinf rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

modify workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

tasks Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

view workload rights Value:<django.db.models.fields.related.ForeignRelatedObjectsDes...

197

Page 200: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.10 Module qis.app.request cache

Provides some useful caching functions that only live during single requests.

It essentially makes variables globally available, it doesn’t serialize anything.

This requires that the RequestAnywhere middleware is loaded.

A.10.1 Functions

is set(cache key)

set(cache key, cache value)

get or none(cache key)

get(cache key)

A.10.2 Variables

Name DescriptionDEBUG Value: False

A.10.3 Class NotCached

object

exceptions.BaseException

exceptions.Exception

qis.app.request cache.NotCached

Methods

Inherited from exceptions.Exception

init (), new ()

Inherited from exceptions.BaseException

198

Page 201: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

delattr (), getattribute (), getitem (), getslice (), reduce (), repr (),setattr (), setstate (), str ()

Inherited from object

hash (), reduce ex ()

Properties

Name DescriptionInherited from exceptions.BaseExceptionargs, messageInherited from object

class

199

Page 202: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.11 Module qis.app.sites

A.11.1 Variables

Name Descriptionsite Value: QisSite(name= ’qis’, app name=

’app’)

BLANK CHOICE DASH Value: [(’’, ’---------’)]

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

ERROR MESSAGE Value:<django.utils.functional. proxy

object at 0x94903ec>FORMFIELD FOR DBFI-ELD DEFAULTS

Value: {<class

’django.db.models.fields.CharField’>:

{’widget’: ...

HORIZONTAL Value: 1

LOGIN FORM KEY Value: ’this is the login form’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

VERTICAL Value: 2

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

settings Value: <django.conf.LazySettings

object at 0x904ddec>

200

Page 203: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.11.2 Class QisSite

object

qis.admin.sites.AdminSite

qis.app.sites.QisSite

Main class for the QIS application

Provides URL configuration and a registry of all configured models.p Also ensures thatauthentication is done.

Methods

init (self, name=None, app name=’admin’)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

get urls(self )

Returns the urlpatterns for this site. Redefined from AdminSite sincepractically nothing remains. Note that this one is static.

Overrides: qis.admin.sites.AdminSite.get urls

Inherited from qis.admin.sites.AdminSite

add action(), admin view(), app index(), check dependencies(), disable action(),display login form(), get action(), has permission(), i18n javascript(), index(),login(), logout(), model page(), password change(), password change done(),register(), root(), unregister()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from qis.admin.sites.AdminSiteactions, urlsInherited from object

continued on next page

201

Page 204: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionclass

Class Variables

Name DescriptionInherited from qis.admin.sites.AdminSiteapp index template, index template, login template

202

Page 205: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.12 Package qis.app.templatetags

A.12.1 Modules

• app modify (Section A.13, p. 204)• context operations (Section A.14, p. 205)• course list (Section A.15, p. 206)• employee list (Section A.16, p. 207)• qis url helpers (Section A.17, p. 208)• report budget (Section A.18, p. 209)• report capacity (Section A.19, p. 211)• report course tasks (Section A.20, p. 212)• report course type (Section A.21, p. 213)• report csv (Section A.22, p. 215)• report education workload (Section A.23, p. 221)• report employee (Section A.24, p. 223)• report employee tasks (Section A.25, p. 225)• report employees (Section A.26, p. 226)• report filters (Section A.27, p. 228)• report hours (Section A.28, p. 229)• report list (Section A.29, p. 230)• report own (Section A.30, p. 231)• report own tasks (Section A.31, p. 233)• studyprogram list (Section A.32, p. 234)• task list (Section A.33, p. 235)

203

Page 206: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.13 Module qis.app.templatetags.app modify

A.13.1 Functions

prepopulated fields js(context)

Creates a list of prepopulated fields that should render Javascript for theprepopulated fields for both the admin form and inlines.

submit row(context)

A.13.2 Variables

Name Descriptionregister Value: template.Library()

204

Page 207: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.14 Module qis.app.templatetags.context operations

A.14.1 Functions

generic tag compiler(params, defaults, name, node class, parser, token)

Returns a template.Node subclass.

register context updater(register, func)

205

Page 208: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.15 Module qis.app.templatetags.course list

A.15.1 Functions

course result list(cl, system year, qisperms, perms)

A.15.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

206

Page 209: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.16 Module qis.app.templatetags.employee list

A.16.1 Functions

employee result list(cl, system year)

A.16.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

207

Page 210: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.17 Module qis.app.templatetags.qis url helpers

A.17.1 Functions

querystring()

current url()

A.17.2 Variables

Name Descriptionregister Value: template.Library()

208

Page 211: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.18 Module qis.app.templatetags.report budget

A.18.1 Functions

init report(subdepartment)

get positions(subdepartment)

get tasktypes(subdepartment)

get position tt(subdepartment, tasktype)

get hours position(subdepartment, position)

get hours tasktype(subdepartment, tasktype)

get hours(subdepartment)

get hours internal(subdepartment, giventoexternals)

get study phases(subdepartment)

get by studyphase(subdepartment, studyphase)

get hours studyphase(subdepartment, studyphase)

get hours external(subdepartment)

A.18.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

continued on next page

209

Page 212: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionREPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

210

Page 213: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.19 Module qis.app.templatetags.report capacity

A.19.1 Functions

init report(object, sy)

in subdepartment(object)

A.19.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

211

Page 214: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.20 Module qis.app.templatetags.report course tasks

A.20.1 Functions

init report(object)

in subdepartment(object)

A.20.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

212

Page 215: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.21 Module qis.app.templatetags.report course type

A.21.1 Functions

init report(system year, targetobject, extraobject)

get course instances(subdepartment, educationtype, tasks, courses)

get tasks(courseinstance, educationtype, tasks)

get subperiods(courseinstance)

get responsibles(courseinstance)

get assigned employees(task)

A.21.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

continued on next page

213

Page 216: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionperms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

214

Page 217: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.22 Module qis.app.templatetags.report csv

A.22.1 Functions

init csv()

add to csv(*args)

start csv row()

add to csv row(*args)

add csv row()

add to csv row formatted(string, *args)

add to csv formatted(string, *args)

ungeneric tag compiler(params, defaults, name, node class, parser, token)

Returns a template.Node subclass.

csv export()

export csv()

A.22.2 Variables

Name Descriptionreport csv Value: CSVExport()

current row Value: []

csv writer Value: csv.writer(report csv)

defaults Value: None

params Value: [’string’]

xx Value: ’args’

xxx Value: None

215

Page 218: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.22.3 Class CSVExport

object

qis.app.templatetags.report csv.CSVExport

Methods

erase(self )

write(self, value)

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name Descriptioncontents Value: ’’

A.22.4 Class SimpleNode

object

django.template.Node

qis.app.templatetags.report csv.SimpleNode

216

Page 219: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

init (self, vars to resolve)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

render(self, context)

Return the node rendered as a string

Overrides: django.template.Node.render extit(inherited documentation)

Inherited from django.template.Node

iter (), get nodes by type()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from django.template.Nodemust be first

A.22.5 Class SimpleNode2

object

django.template.Node

qis.app.templatetags.report csv.SimpleNode2

217

Page 220: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

init (self, vars to resolve)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

render(self, context)

Return the node rendered as a string

Overrides: django.template.Node.render extit(inherited documentation)

Inherited from django.template.Node

iter (), get nodes by type()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from django.template.Nodemust be first

A.22.6 Class SimpleNode3

object

django.template.Node

qis.app.templatetags.report csv.SimpleNode3

218

Page 221: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

init (self, vars to resolve)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

render(self, context)

Return the node rendered as a string

Overrides: django.template.Node.render extit(inherited documentation)

Inherited from django.template.Node

iter (), get nodes by type()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from django.template.Nodemust be first

A.22.7 Class SimpleNode4

object

django.template.Node

qis.app.templatetags.report csv.SimpleNode4

219

Page 222: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Methods

init (self, vars to resolve)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

render(self, context)

Return the node rendered as a string

Overrides: django.template.Node.render extit(inherited documentation)

Inherited from django.template.Node

iter (), get nodes by type()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name DescriptionInherited from django.template.Nodemust be first

220

Page 223: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.23 Module qis.app.templatetags.report education workload

A.23.1 Functions

init report(object, extra)

get course instance(all education tasks, course instance, all assignments)

in subdepartment(object)

total assigned hours(tasks)

has assignments(tasks)

get total targetgroup(course instances)

get total studyprogram(studyprogram)

get total studyprograms(subdepartment)

studyprograms(subdepartment)

A.23.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

continued on next page

221

Page 224: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptiondatetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

222

Page 225: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.24 Module qis.app.templatetags.report employee

A.24.1 Functions

init report(parser=None, token=None)

filter assignment task(assignments, tasktype)

total assignment hours(assignments, tasktype)

hours employ(employment, sy)

task available(employment, sy)

hours available employ(employment, sy)

total hours available(employee, sy)

unassigned(employment, sy)

tot unassigned(employee, sy)

get education task(task)

A.24.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

continued on next page

223

Page 226: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionTASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

224

Page 227: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.25 Module qis.app.templatetags.report employee tasks

A.25.1 Functions

init report(targetobject, employee)

ci list(employee)

A.25.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

225

Page 228: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.26 Module qis.app.templatetags.report employees

A.26.1 Functions

filter list(lst, **args)

in subdepartment(object)

employees(object)

filter assignments(lst, task type, educationtask type, education tasks)

total available hours(empl, systemyear)

init report(system year, targetobject, extraobject=None)

A.26.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

continued on next page

226

Page 229: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionperms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

227

Page 230: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.27 Module qis.app.templatetags.report filters

A.27.1 Functions

mult(value, arg)

Multiplies the arg and the value

sub(value, arg)

Subtracts the arg from the value

div(value, arg)

Divides the value by the arg

A.27.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

228

Page 231: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.28 Module qis.app.templatetags.report hours

A.28.1 Functions

init report(object, report)

in subdepartment(object)

A.28.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

229

Page 232: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.29 Module qis.app.templatetags.report list

A.29.1 Functions

dmodel(modelstring)

allreports(group)

supergroups()

report result list(cl, system year)

A.29.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

230

Page 233: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.30 Module qis.app.templatetags.report own

A.30.1 Functions

filter list(lst, **args)

in subdepartment(object)

employees(object)

filter assignments(lst, task type, educationtask type, education tasks)

total available hours(empl, systemyear)

init report(system year, targetobject)

A.30.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

continued on next page

231

Page 234: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionperms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

232

Page 235: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.31 Module qis.app.templatetags.report own tasks

A.31.1 Functions

init report(subdepartment, employee)

ci list(employee)

A.31.2 Variables

Name Descriptionregister Value: template.Library()

DJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

233

Page 236: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.32 Module qis.app.templatetags.studyprogram list

A.32.1 Functions

studyprogram result list(cl, system year)

A.32.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

234

Page 237: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.33 Module qis.app.templatetags.task list

A.33.1 Functions

task result list(cl, system year)

A.33.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

235

Page 238: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.34 Module qis.app.tests

Loads the legacy data from a set of CSV exports into the model.

A.34.1 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>debug Value: False

name Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

username Value: ’sep’

userpass Value: ’roester’

236

Page 239: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.34.2 Class TestViews

object

unittest.TestCase

django.test.testcases.TransactionTestCase

django.test.testcases.TestCase

qis.app.tests.TestViews

Methods

setUp(self )

Configures the test environment

Overrides: unittest.TestCase.setUp

test atr1(self )

ATR1 - UCR2, 3, 4, 5, 8, 160, 161, 162, 163

test atr2(self )

ATR1 - UCR3, 4, 8

test system(self )

test pages(self )

Tests all pages for existance

test index page(self )

Tests index page for existance

test administrative page(self )

Tests administrative page for existance

test home page(self )

Tests home page for existance

237

Page 240: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

test logout(self )

Tests logs out

test employees login(self )

Test logs out and logs in as specific users

test login(self, user=’sep’, password=’roester’)

Tests login

test false login(self, user=’fake’, password=’fake’)

Tests login with false credentials

test add department(self )

Tests adding a department

test add subdepartment(self )

Tests adding a subdepartment

test add expertisegroup(self )

Tests adding a expertise group

test add studyprogram(self )

Tests adding a study program

get active system year(self )

Returns the active system year

add something(self, section, fields)

Helper function for adding an item

cleanUp(self )

Cleans the test environment

Inherited from django.test.testcases.TransactionTestCase

call (), assertContains(), assertFormError(), assertNotContains(), assertRedi-rects(), assertTemplateNotUsed(), assertTemplateUsed()

Inherited from unittest.TestCase

238

Page 241: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

init (), repr (), str (), assertAlmostEqual(), assertAlmostEquals(), as-sertEqual(), assertEquals(), assertFalse(), assertNotAlmostEqual(), assertNo-tAlmostEquals(), assertNotEqual(), assertNotEquals(), assertRaises(), assert-True(), assert (), countTestCases(), defaultTestResult(), fail(), failIf(), failI-fAlmostEqual(), failIfEqual(), failUnless(), failUnlessAlmostEqual(), failUnlessE-qual(), failUnlessRaises(), id(), run(), shortDescription(), tearDown()

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),setattr ()

Properties

Name DescriptionInherited from object

class

Class Variables

Name Descriptiondebug Value: False

username Value: ’sep’

userpass Value: ’roester’

239

Page 242: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.35 Module qis.app.views

Global and generic views for QIS

A.35.1 Functions

home redirect(request, *args, **kwargs)

home(request, *args, **kwargs)

Show the current user’s employee overview page

home edit details(request, *args, **kwargs)

Show the current user’s edit details page

administrative(request, *args, **kwargs)

The administrative object list

A.35.2 Variables

Name DescriptionDJANGO QISGROUP FO-RMAT

Value: ’[QIS Application Group] %s’

ERROR MESSAGE Value:<django.utils.functional. proxy

object at 0x94903ec>LOGIN FORM KEY Value: ’this is the login form’

MAXYEAR Value: 9999

MINYEAR Value: 1

PERMISSIONS Value: ((’view own workload’, ’VOW’,

[]), (’view expertisegroup ...

REPORT GROUPS Value: [(1, ’Workload’), (2,

’Employee reports’), (3, ’Course

In...

RIGHT OBJECTS Value:[(’view expertisegroup workload object’,

’VEGW object’, ’...

TASK TYPES Value: ((’researchproject’, ’Research

project’), (’managementpro...

datetime CAPI Value: <PyCObject object at

0x8eba110>continued on next page

240

Page 243: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name Descriptionname Value: ’MSDCI object’

object Value:’modify subdepartment courseinf object’

perms Value: [’change system’,

’view employee’, ’change employee’,

’de...

related name Value: ’modify courseinf rights’

right Value: ’modify system administration’

settings Value: <django.conf.LazySettings

object at 0x904ddec>

241

Page 244: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.36 Module qis.manage

242

Page 245: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.37 Module qis.manage prod

243

Page 246: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.38 Module qis.runserver

A.38.1 Variables

Name Descriptioncmd prefix Value: ’./manage.py ’

244

Page 247: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.39 Module qis.settings

Django DEBUG settings for QIS project, extends settings prod

A.39.1 Variables

Name DescriptionDEBUG Value: True

TEMPLATE DEBUG Value: True

DATABASE NAME Value: ’qis trunk’

DATABASE HOST Value: ’sep.tnode.net’

SECRET KEY Value:’k384nwb947epd$tcjtsp)!4(xa&b%7j#avxbsk*ql&=+9z&n04’

QIS URL Value: ’http://localhost:8000/’

AUTHENTICATION BA-CKENDS

Value:[’qis.app.auth.backends.EmergencySuperuserBackend’,

’qis....

AD DC Value: ’tuedc1.tue.nl’

INTERNAL IPS Value: [’127.0.0.1’]

EMAIL SUBJECT PREFI-X

Value: ’[QIS Admin - DEBUG Mode] ’

EMAIL HOST Value: ’localhost’

EMAIL PORT Value: 1025

ADMINS Value: ((’SEP’, ’[email protected]’))

ADMIN MEDIA PREFIX Value: ’/media/’

AD DOMAIN Value: ’TUE’

AD SITE Value: ’tue.nl’

DATABASE ENGINE Value: ’mysql’

DATABASE PASSWOR-D

Value: ’roester’

DATABASE PORT Value: ’’

DATABASE USER Value: ’qis prod’

EMERGENCY SUPERUS-ER LOGIN

Value: ’sep’

EMERGENCY SUPERUS-ER PASSHASH

Value:’sha1$7116e$3dfdc05d10568a2996b76d63cc547ebd001f7004’

INSTALLED APPS Value: (’django.contrib.auth’,

’django.contrib.contenttypes’, ’d...

LANGUAGE CODE Value: ’en-us’

MANAGERS Value: ((’SEP’, ’[email protected]’))

MEDIA ROOT Value:’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis/media/’

MEDIA URL Value: ’/media/’

continued on next page

245

Page 248: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionMIDDLEWARE CLASSE-S

Value:(’django.middleware.gzip.GZipMiddleware’,

’qis.app.middle...

ROOT URLCONF Value: ’qis.urls’

SEND BROKEN LINK E-MAILS

Value: False

SITE ID Value: 1

SITE ROOT Value:’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis’

TEMPLATE CONTEXT -PROCESSORS

Value:(’django.core.context processors.auth’,

’django.core.cont...

TEMPLATE DIRS Value:(’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis/templ...

TEMPLATE LOADERS Value:(’django.template.loaders.filesystem.load template source...

TIME ZONE Value: ’Europe/Amsterdam’

USE I18N Value: False

246

Page 249: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.40 Module qis.settings prod

Django settings for QIS project.

These settings are specific to the production environment only.

Override these in module settings if you intend to debug.

Note: There are many more settings possible than are listed here.

Please see django.conf.global settings for details. Even though most

will be for internal functionality, you might find what you need there.

This file is Python code; it must be syntactically correct.

After editing this file, make sure the configuration works by running it

in test using:

manage prod.py runserver

and visiting the front page on the URL that is output.

Do not run the server in production this way, run it through a real

webserver using the WSGI server wsgi/qis prod.wsgi.

A.40.1 Variables

Name DescriptionSITE ROOT Value:

’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis’

DEBUG Value: False

TEMPLATE DEBUG Value: False

ADMINS Value: ((’SEP’, ’[email protected]’))

MANAGERS Value: ((’SEP’, ’[email protected]’))

SEND BROKEN LINK E-MAILS

Value: False

EMAIL SUBJECT PREFI-X

Value: ’[QIS Admin] ’

DATABASE ENGINE Value: ’mysql’

DATABASE NAME Value: ’qis prod’

DATABASE USER Value: ’qis prod’

DATABASE PASSWOR-D

Value: ’roester’

DATABASE HOST Value: ’’

DATABASE PORT Value: ’’

TIME ZONE Value: ’Europe/Amsterdam’

SECRET KEY Value:’=683 y17ahz8xo4=qc!7j4-w6^)prl3!akyz2j^#s^(@l^4ec^’

continued on next page

247

Page 250: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Name DescriptionEMERGENCY SUPERUS-ER LOGIN

Value: ’sep’

EMERGENCY SUPERUS-ER PASSHASH

Value:’sha1$7116e$3dfdc05d10568a2996b76d63cc547ebd001f7004’

AD SITE Value: ’tue.nl’

AD DOMAIN Value: ’TUE’

QIS URL Value: ’http://qistest.win.tue.nl/’

LANGUAGE CODE Value: ’en-us’

SITE ID Value: 1

USE I18N Value: False

MEDIA ROOT Value:’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis/media/’

ADMIN MEDIA PREFIX Value: ’/media/’

MEDIA URL Value: ’/media/’

TEMPLATE LOADERS Value:(’django.template.loaders.filesystem.load template source...

TEMPLATE CONTEXT -PROCESSORS

Value:(’django.core.context processors.auth’,

’django.core.cont...

MIDDLEWARE CLASSE-S

Value:(’django.middleware.gzip.GZipMiddleware’,

’qis.app.middle...

AUTHENTICATION BA-CKENDS

Value:[’qis.app.auth.backends.EmergencySuperuserBackend’,

’qis....

ROOT URLCONF Value: ’qis.urls’

TEMPLATE DIRS Value:(’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis/templ...

INSTALLED APPS Value: (’django.contrib.auth’,

’django.contrib.contenttypes’, ’d...

248

Page 251: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.41 Package qis.tools

A.41.1 Modules

• compile tree (Section A.42, p. 250)• djangoproject: Enables importing qis.*, django.* and gives you project settings

(Section A.43, p. 251)• generate passhash: Generates salted password hashes.

(Section A.44, p. 252)• import legacy: Loads the legacy data from a set of CSV exports into the model.

(Section A.45, p. 253)• mailserver (Section A.46, p. 254)• setup (Section A.47, p. 255)

249

Page 252: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.42 Module qis.tools.compile tree

250

Page 253: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.43 Module qis.tools.djangoproject

Enables importing qis.*, django.* and gives you project settings

A.43.1 Variables

Name DescriptionPROJECT ROOT Value:

’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis’

251

Page 254: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.44 Module qis.tools.generate passhash

Generates salted password hashes. Can be run interactively.

A.44.1 Functions

get passhash(password)

Returns a salted password hash for the given password

askpass()

252

Page 255: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.45 Module qis.tools.import legacy

Loads the legacy data from a set of CSV exports into the model.

A.45.1 Functions

do import()

A.45.2 Variables

Name DescriptionPROJECT ROOT Value:

’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis’

A.45.3 Class obj

object

qis.tools.import legacy.obj

Recursively converts any dict to object for easy attribute access

Methods

init (self, d)

x. init (...) initializes x; see x. class . doc for signature

Overrides: object. init extit(inherited documentation)

Inherited from object

delattr (), getattribute (), hash (), new (), reduce (), reduce ex (),repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

253

Page 256: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.46 Module qis.tools.mailserver

254

Page 257: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.47 Module qis.tools.setup

A.47.1 Functions

q choice(ans, vargs)

q asciistring(ans, vargs)

q integer(ans, vargs)

ask(*args)

main()

interact main()

A.47.2 Variables

Name DescriptionQUESTIONS Value: {’adduser’: (’QIS requires an

Administrator to set up rig...

config Value: QisSettings()

PROJECT ROOT Value:’/home/roy/files/tue/2ip35/SEP2010-1/trunk/src/qis’

A.47.3 Class ValidationException

object

exceptions.BaseException

exceptions.Exception

qis.tools.setup.ValidationException

Methods

Inherited from exceptions.Exception

255

Page 258: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

init (), new ()

Inherited from exceptions.BaseException

delattr (), getattribute (), getitem (), getslice (), reduce (), repr (),setattr (), setstate (), str ()

Inherited from object

hash (), reduce ex ()

Properties

Name DescriptionInherited from exceptions.BaseExceptionargs, messageInherited from object

class

A.47.4 Class QisSettings

object

qis.tools.setup.QisSettings

Methods

apply(self )

Write configuration to settings prod.py

Inherited from object

delattr (), getattribute (), hash (), init (), new (), reduce (),reduce ex (), repr (), setattr (), str ()

Properties

Name DescriptionInherited from object

class

256

Page 259: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Class Variables

Name Descriptionuse nt Value: False

import legacy Value: False

add user Value: False

257

Page 260: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

A.48 Module qis.urls

A.48.1 Variables

Name Descriptionurlpatterns Value: [<RegexURLResolver

[<RegexURLPattern courses definitive

^...

258

Page 261: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Index

qis (package), 15–16qis.app (package), 17–18

qis.app.auth (package), 19qis.app.context processors (module), 26qis.app.create groups (function), 18qis.app.create permissions (function), 18qis.app.create system instance (function),

18qis.app.create task types (function), 18qis.app.initialize report data (function),

18qis.app.initialize right data (function),

18qis.app.mail (module), 27qis.app.middleware (module), 28–29qis.app.modeladmins (module), 30–102qis.app.models (module), 103–197qis.app.request cache (module), 198–

199qis.app.sites (module), 200–202qis.app.templatetags (package), 203qis.app.tests (module), 236–239qis.app.views (module), 240–241

qis.manage (module), 242qis.manage prod (module), 243qis.runserver (module), 244qis.settings (module), 245–246qis.settings prod (module), 247–248qis.tools (package), 249

qis.tools.compile tree (module), 250qis.tools.djangoproject (module), 251qis.tools.generate passhash (module), 252qis.tools.import legacy (module), 253–

254qis.tools.mailserver (module), 254qis.tools.setup (module), 255–257

qis.urls (module), 258

259

Page 262: ddd.pdf

Technische Universiteit EindhovenUniversity of Technology

Appendix B

Requirements traceability matrix

260