Project

General

Profile

Feature #7721

Branches, rooms and transactions

Added by Yannick Warnier over 4 years ago. Updated about 3 years ago.

Status:
Assigned
Priority:
High
Category:
Branches/rooms
Target version:
Start date:
28/05/2015
Due date:
% Done:

10%

Estimated time:
Spent time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

A lot of institutions that use Chamilo have branches (buildings or completely different campuses) and rooms (classrooms).
Also, we have already developed for some customers a transactions mechanism that allows external systems, or even other Chamilo systems, to quickly input new operations into Chamilo.

This task is about making all of this one new big piece of Chamilo capabilities. The intention is to have a basis in 1.10.0 that we can extend in the future.

The database structure should be like this:

Where:
  • branch is the list of branches (buildings or campuses). Most fields can be empty. Only id, title and unique_id (a randomly-generated SHA1 hash) are required. At least one branch should be created at the beginning
  • room is the list of rooms. Most fields can be empty but id, branch_id and title are required
  • external_transaction is a table to store transactions to be executed in Chamilo (no implementation required for now, just creating the table)
  • external_transaction_status is a table with the following statuses to be referenced from external_transaction:
    • 1 => To e executed
    • 2 => Executed successfully
    • 3 => Execution deprecated
    • 4 => Execution failed
    • 5 => Execution abandonned
    • 6 => Frozen voluntarily
  • c_thematic_advance is an ALTER to the current table, to add an optional room_id
  • course is an ALTER to the current table, to add an optional room_id
  • c_calendar_event is an ALTER to the current table, to add an optional room_id
With this, the Chamilo interface would change like this:
  • The administration page will have a new panel: "Branches and rooms" (give it the settings.png icons for now) with the following links:
    • Branches list
    • Add branch
      • title field
      • unique id (auto-generated but modifiable)
      • access_url_id is not shown (but is set to 1 or the current access_url_id)
      • geolocation field is an optional text field where you add a value like "-12.097765, -77.038131" (something that can be used by Google Maps and OpenStreetMap)
      • ipaddress is an optional text field (no validation necessary for now but if you have something that does that for ipv4 and ipv6, use it)
      • ipmask is an optional text field
      • download and upload speed and delay are not shown (they serve another purpose)
      • last_sync fields are not shown (they serve another purpose)
      • description is a text area field (make sure to leave a folder in app/upload/ for branches)
    • Rooms list
    • Add room
      • branch_id is a select box with all available branches
      • title is a text field
      • geolocation field is an optional text field where you add a value like "-12.097765, -77.038131" (something that can be used by Google Maps and OpenStreetMap)
      • ipaddress is an optional text field (no validation necessary for now but if you have something that does that for ipv4 and ipv6, use it)
      • ipmask is an optional text field
      • description is a text area field (make sure to leave a folder in app/upload/ for rooms)
    • Transactions list (to just show branch_id, external_transaction_id, transaction_status_id, time_insert and time_update for now, ordered by time insert by default)
  • The course settings page will show an additional field in the main section to select the room (by default, no room is selected)
    • In the rooms drop-down, the list of rooms will be "branch.title - room.title". If the current access_url is not the main one, then the rooms should only be the ones from the branch with the current access_url_id
  • In the thematic advance creation and edition pages (where the teacher configures the attendance date and the duration), add an optional room field
  • In the thematic advance view, show the branch and the room titles
  • In the calendar event creation and edition pages, add an optional room field
  • In the calendar event view, show the branch and the room titles

With this, I think we would already have a good basis for testing and improvements for the next iteration (download speed scanners, maps embeds, rooms reservations, etc).

Do you need mockups? All these are basic forms, so there's not much to describe... You can use the User creation form as a reference if you need one.


Files

rooms.png (76.2 KB) rooms.png Yannick Warnier, 28/05/2015 15:32
rooms.dia (2.74 KB) rooms.dia Yannick Warnier, 28/05/2015 15:32

History

#1

Updated by Yannick Warnier over 4 years ago

Any progress on this?

#2

Updated by Julio Montoya over 4 years ago

  • Assignee changed from Julio Montoya to Yannick Warnier

I just added the DB changes.

Are you sure you want this in 1.10?

It will more easy and fast doing it with a symfony2 base.

#3

Updated by Yannick Warnier over 4 years ago

And here I thought what we did until now was already enough to make it easier to develop :-)
Yes, I want it in 1.10.0, but only a very basic version. No need to go too deep in the interfaces or management. Actually, if you want to postpone it to 1.11, I can handle it if the tables are already there (so we can build on it without database changes if necessary).

This being said, if it's a matter of 4h or so to do, then don't hesitate to do it. If you think it's more than that, just change the planned version to 1.11

#4

Updated by Julio Montoya over 4 years ago

Yannick Warnier wrote:

And here I thought what we did until now was already enough to make it easier to develop :-)

Now, Is easy to make migrations and add new DB changes.

Yes, I want it in 1.10.0, but only a very basic version. No need to go too deep in the interfaces or management. Actually, if you want to postpone it to 1.11, I can handle it if the tables are already there (so we can build on it without database changes if necessary).

This being said, if it's a matter of 4h or so to do, then don't hesitate to do it. If you think it's more than that, just change the planned version to 1.11

The problem is that it will be more easy with the symfony base and probably redo the work. So is better If we pospone this.

#5

Updated by Yannick Warnier over 4 years ago

  • Target version changed from 1.10.0 to 2.0

Moving this to the next version. The first changes sent to create the database would already allow us to build some stuff on top of that in a minor version.

#6

Updated by Yannick Warnier about 4 years ago

  • Assignee changed from Yannick Warnier to José Loguercio
#7

Updated by Yannick Warnier about 3 years ago

  • Priority changed from Low to High

Also available in: Atom PDF