[Package Index | Mudlib Index | Effect Index]

File /obj/handlers/project_management.c

Project Management System @author Drakkos @started 19/08/2001

Includes

This class includes the following files /include/project_management.h, /include/player_handler.h, /include/cmds/twiki.h, /include/board.h, /include/permissions.h, /include/mail.h and /include/playtesters.h

Class Index

Method index

Public Functions

These are functions that everyone can access.

add_cache_file
int add_cache_file(string id)
add_creator
int add_creator(string id,
                string creator)
add_domain
int add_domain(string id,
               string domain)
add_file
int add_file(string id,
             string file,
             int access,
             string name,
             string task)
add_note_to_project
int add_note_to_project(string id,
                        string note_id,
                        string note,
                        string name)
add_playtester
string * add_playtester(string id,
                        string * pt)
add_project
int add_project(string id,
                string nname,
                string lead,
                string desc,
                string * dom,
                string * cre,
                string add_name,
                int size,
                int complexity,
                string * guilds)

Add a project to the database. @param id the project to add. @param nname the name of the project @param lead the project leader. @param desc the description of the project @param dom the domains the project belongs to @param cre the creators assigned to the project @param add_name the person adding the project. @returns the index of the added project, or -1 if the project already exists
add_task_creator
int add_task_creator(string id,
                     string task_id,
                     string creator)
add_task_to_project
int add_task_to_project(string id,
                        string task_id,
                        string name,
                        string aim)
add_twiki
int add_twiki(string id,
              string twiki)
assign_playtesters
int assign_playtesters(string id,
                       string * pt,
                       string name)
assign_project_task_creator
int assign_project_task_creator(string id,
                                string task,
                                string creator)
assign_pts_to_project
string * assign_pts_to_project(mixed proj)
brute_delete
int brute_delete(string id)
catch_status_change
void catch_status_change(string id,
                         int status)
clear
void clear()
clear_file_cache
int clear_file_cache(string nfile)
clear_playtesting_projects
int clear_playtesting_projects(string * names)
data_dump
class project * data_dump()
delete_note
int delete_note(string id,
                string note_id,
                string name)

Delete a note from a project. @param id the project to search for. @param note_id the note to search for @param name the name of the person deleting. @returns 1.
delete_project
int delete_project(string id,
                   string name)

Delete a project from the array. @param id the note to search for. @param name the name of the person deleting. @returns 1.
delete_task
int delete_task(string id,
                string task_id,
                string name)

Delete a task from a project. @param id the project to search for. @param task_id the task to search for @param name the name of the person deleting. @returns 1.
do_inform
void do_inform()

Compile the information for the creator inform.
do_load
void do_load()

Load the file. @ignore yes
do_log
void do_log(string text)

Log text to the project management logfile. @ignore yes
do_mail
void do_mail(string * playtesters,
             string leader,
             string proj)
do_save
void do_save()

Save the file. @ignore yes
filter_by_query
class project * filter_by_query(mapping query)
filter_tasks_by_query
class task * filter_tasks_by_query(string id,
                                   mapping query)
find_cache_file
int find_cache_file(string file)

Find the cache entry for a particular file. @param id the project to search for. @returns the index of the project, or -1 if none is found.
find_file
class file * find_file(mixed i,
                       string nfile,
                       string task)

Find the occurance of a particular file for a project. @param i the project to search for @param file the file to search for. @returns the index of the task, or -1 if none is found.
find_note
int find_note(mixed i,
              string id)

Find the index of a particular note for a project. @param i the project to search for @param id the note to search for. @returns the index of the note, or -1 if none is found.
find_project
int find_project(string id)

Find the index of a particular project. @param id the project to search for. @returns the index of the project, or -1 if none is found.
find_task
int find_task(mixed i,
              string id)

Find the index of a particular task for a project. @param i the project to search for @param id the task to search for. @returns the index of the task, or -1 if none is found.
generate_pt_report
string generate_pt_report()
get_note_file
class note get_note_file(string id,
                         string t)
get_playtesting_projects
class project * get_playtesting_projects()
get_project_file
class project get_project_file(string id)
get_task_file
class task get_task_file(string id,
                         string t)
insert_into_cache
int insert_into_cache(mixed temp)
insert_into_notes
int insert_into_notes(int i,
                      mixed temp)

Insert an element into the notes array. It will do this alphabetically to ensure that the binary search algorithim can locate projects. @param i the index of the project to insert into. @param temp the element to insert @returns the index of the inserted element.
insert_into_projects
int insert_into_projects(mixed temp)

Insert an element into the projects array. It will do this alphabetically to ensure that the binary search algorithim can locate projects. @param temp the element to insert @returns the index of the inserted element.
insert_into_tasks
int insert_into_tasks(int i,
                      mixed temp)

Insert an element into the tasks array. It will do this alphabetically to ensure that the binary search algorithim can locate projects. @param i the index of the project to insert into. @param temp the element to insert @returns the index of the inserted element.
is_creator_on_project
int is_creator_on_project(string name,
                          string id)
make_post
int make_post()
next_rotation_time
int next_rotation_time(mixed proj)
nuke_creator_project_cache
int nuke_creator_project_cache(string * creators)
parse_details
string parse_details(class project p)

Return a brief summary of the pertinent details of a particular project. @param p the project to summarise. @returns the string summary.
project_info
string project_info(string id)
project_note_data
class note * project_note_data(string id)
project_task_data
class task * project_task_data(string id)
query_all_projects_info
string query_all_projects_info()
query_all_pts
string * query_all_pts(string proj)
query_description
string query_description(string id)
query_file_permission
int query_file_permission(string name,
                          string nfile,
                          int access)
query_files
class file * query_files(string id)
query_guild_specific
string * query_guild_specific(mixed proj)
query_last_summary
int query_last_summary()
query_number_of_pts
int query_number_of_pts(mixed proj)
query_number_rotations
int query_number_rotations(mixed proj)
query_permission
int query_permission(string project,
                     string name,
                     string nfile,
                     int access)
query_playtesters
string * query_playtesters(mixed proj)
query_project_completeness
int query_project_completeness(string id)
query_project_domains
string * query_project_domains(string id)
query_project_leader
string query_project_leader(string id)
query_project_lock
int query_project_lock(string project)
query_project_name
string query_project_name(string id)
query_project_notes
string * query_project_notes(string id)
query_project_subprojects
string * query_project_subprojects(string id)
query_project_tasks
string * query_project_tasks(string id)
query_projects
string * query_projects()
query_projects_for_creator
string * query_projects_for_creator(string c)
query_projects_for_creator_in_domain
string * query_projects_for_creator_in_domain(string creator,
                                              string domain)
query_pt_cache
string * query_pt_cache()
query_pt_notes
varargs string * query_pt_notes(string id)
query_pt_projects
string * query_pt_projects(string name)
query_rotation
int query_rotation(mixed proj)
query_size
int query_size(mixed proj)
query_status
int query_status(string id)
query_summary_mapping
mapping query_summary_mapping()
query_summary_page
string query_summary_page()

Return the details of projects that have been touched since the last summary. @returns the recent project changes.
query_task_aims
string query_task_aims(string id,
                       string task_id)
query_task_comments
string query_task_comments(string id,
                           string task_id)
query_task_completion
int query_task_completion(string id,
                          string task_id)
query_task_completion_date
int query_task_completion_date(string id,
                               string task_id)
query_task_creators
string * query_task_creators(string id,
                             string task_id)
query_task_name
string query_task_name(string id,
                       string task_id)
query_time_to_rotate
int query_time_to_rotate(mixed proj)
query_touched
string query_touched(string id)

Return a formatted string saying when the project was last touched. @param id the project ID. @returns the last touched string.
query_twiki
string * query_twiki(string id)
remove_file
int remove_file(string id,
                string file,
                string task,
                string name)
remove_playtester
int remove_playtester(string id,
                      string * pt)
reset_files
int reset_files(string id)
rotate_project
void rotate_project(mixed tmp)
save_file
void save_file()

Call out the do_save function. If lots of projects are being touched within a short time scale, this should reduce the hard-drive grinding. @ignore yes
set_completion_date
int set_completion_date(string id,
                        int date)
set_complexity
int set_complexity(mixed proj,
                   int com)
set_description
int set_description(string id,
                    string desc)
set_guild_specific
int set_guild_specific(mixed proj,
                       string * guilds)
set_note_file
void set_note_file(string id,
                   string t,
                   class note tmp,
                   string name)
set_project_completeness
int set_project_completeness(string id,
                             int percent)
set_project_file
void set_project_file(string id,
                      class project tmp,
                      string name)
set_project_leader
int set_project_leader(string id,
                       string leader)
set_project_lock
void set_project_lock(string project)
set_project_name
int set_project_name(string id,
                     string name)
set_rotations
void set_rotations(string proj,
                   int rot)
set_size
int set_size(mixed proj,
             int siz)
set_status
int set_status(string id,
               int stat)
set_status_change
int set_status_change(string id,
                      int time)
set_task_aims
int set_task_aims(string id,
                  string task_id,
                  string aims)
set_task_comments
int set_task_comments(string id,
                      string task_id,
                      string comments)
set_task_completion
int set_task_completion(string id,
                        string task_id,
                        int percent)
set_task_completion_date
int set_task_completion_date(string id,
                             string task_id,
                             int date)
set_task_file
void set_task_file(string id,
                   string t,
                   class task tmp,
                   string name)
set_task_name
int set_task_name(string id,
                  string task_id,
                  string name)
task_info
string task_info(string id,
                 string task_id)
test_num
void test_num()
touch_project
void touch_project(string id,
                   string reason,
                   string name)

Touch a project. We use this project to set when a project was last touched, by whom and what they did. We also save the data file at this point. @param id the project ID @param reason the way the project was touched @param name the name of the person touching the project
update_project
int update_project(string name)
update_project_task_completeness
int update_project_task_completeness(string id,
                                     string task,
                                     int percent)
valid_operation
varargs int valid_operation(string name,
                            string action,
                            string project,
                            string * dom)

Protected Functions

These are functions that only objects inheriting the class can access.

find_index
int find_index(string id,
               mixed * array)

Find the occurance of a particular ID in a particular array. This is done via a binary search of the array. @param id the ID to match on @array array the array to search through. @returns the index of the matched element, or -1 if none is found. @ignore yes

Classes

These are nice data types for dealing with... Data!