This question has been flagged
2 Replies
10502 Views

This Question begins Here:

What's not, the goal of this question ?

To be, a « Yet Another Question About Internationalization and Localization ». (This is absolutely not the case).

What is the goal , of this Question ?

Replacing the OpenERP's standard Gregorian Calendar by a Hijri (Islamic) calendar, or giving the possibilitie to the user to choose the calendar he want to use.

Why not, there are probably thousands of OpenERP users around the world, and in many countries, where Gregorian calendar is not used, or at least an other calendar is in use (e,g Ethiopian, Thai, Chinese, Hindu, Hijri, Oromo, Somali, Iranian, Hebrew, Bahá'í … Calendars),

http://en.wikipedia.org/wiki/List_of_calendars

This lead us to a new question : How to change from the OpenERP's standard calendar, to any other calendar ?

Is there any possibilities to do that, in OpenERP, and How to achieve this task (using the OpenObject framework)?

Should us build a new module : Coded in Python or a Web module with JS ...?

Or, should us just modify an existing module ?

Can we do that, without the need of patching the original code , and without breaking it?

How to do this, without having to reinvent the wheel ?

Before going further, we must clarify something, which is for me a crucial point :

The Calendar is just the apparent part of the iceberg, and the hidden parts are, date and Time.

So, How Time, Date, and Calendar are handled in OpenERP ?

  1. From this LINK (response from Fabien Pinckaers)

    • Data are stored in the database in UTC (not depending on the timezone of your users)

      When the client receives the data, it translates it according to the timezone of the user which is on the global context that comes from the user preferences (so, the date/time you see on the screen is not the same than the one in the database)

      The client sends back the new dates to the server under the UTC format

  2. Read also this https://github.com/WillowIT/Pentaho-reports-for-OpenERP/wiki/Some-Notes-about-Dates-and-Datetimes

  3. Known also that OpenERP relies on the following python libraries to handle all the Time, Date and calendar Data.

    Python Time - https://docs.python.org/2.7/library/time.html#module-time

    Python datetime - https://docs.python.org/2/library/datetime.html#module-datetime

    Python Calendar – https://docs.python.org/2.7/library/calendar.html?highlight=calendar#module-calendar

    Unfortunately, all this work was done based on the Gregorian calendar.

And this is also the case for Postgresql: the 'datetime values' are constrained by the natural rules for dates and times according to the Gregorian calendar ( taken from http://www.postgresql.org/docs/current/static/datetime-units-history.html)

  1. At the web side OpenERP use the following libraries: Javascrip dates used for parsing, formatting and processing - * jquery-ui-timepicker-addon* used to add a datetimepicker, datepicker or timepicker dropdown …

Where to begin ?

Lost between Python, Javascript, and Postgresql.

But, Time, Date and Calendar works fine in OpenERP (for the Gregorian sytem) !

The first idea that comes to me is, to just use Two functions in one single JS file, for converting from and to Gregorian calendar :

-The first, for converting from Gregorian to Hijri (or to any other calendar system) after reading data from DB and just before returning the result, to the calling function.

  • The second, for converting from Hijri to Gregorian, Just before returning the data for writing into the DB.

    And let OpenERP Web doing his Job as before.

This way, we don't have to overwrite any files, but just inserting 2 calls to the related functions ( for example in dates.js). (No need to reinvent the wheel).

Is this enough ?

Certainly, not.

The next step, is to deal with the datetimepicker , and the hidden things …

Personnaly i've tried with 3 JS files:

https://github.com/xsoh/Hijri.js/blob/master/Hijri.js

https://github.com/talomaireeni/Umm-Al-Qura-Calendar/blob/master/UQCal.js

and http://www.al-habib.info/islamic-calendar/hijricalendartext.htm

and i can't get a suitable result, except the correct conversion of the current date field.

This is certainly due to my lack of mastery of Javascript, the lack of the OpenERP technical documentation, and the time reserved for this task.

Tired of reading all the Firebug error messages, and the JS code, tired of reading between the lines of python code to see how things are done, to try to understand what's going on, and what's wrong.

So tired, that i've decided to stop working, and take a rest for some moments, take a cofee and browse the web ...

Browsing the web, with the help of my favorite search engine, and as if by chance i came across this link:

jQuery Calendars

A wonderful thing.

This is an Open Question: Everyone interested by this subject should contribute not only by giving an answer, but above all by contributing to the question itself.

A way to show that the subject of the question is of great importance for many of OpenERP users.

And why not, making the solution to this question a part of the OpenERP Web.

The next steps ...

Giving the Responses ...

Building the Solution ... With the help of jQuery Calendars

To be continued ...

Avatar
Discard

I vote for this question. I asked this question before 2 week ago. But reply. Then I tried to copy-paste the default js file and tried to edit with islamic details. But it still contains some bugs & no output.

Author

Hi Remya, try with the Jquery Calendars to see what we can do, it's a complete solution. You can also keep on trying with the JS files mentioned above, it's a good exercise. Tomorrow, i will post the last results i've obtained.

Thanks for your reply. I'm also trying.

Any Updates, Med Said BARA? I tried with the jquery calendar, but still showing the English calendar and some bugs. Did you got any progress, if anything please update the answer. So that i can move a little bit forward. Thanks and awaiting your reply.

Please can you help me, Where should I add these files ????

Author Best Answer

I'm back.

After one week there are no answers,no contributions.

Trying to attach a video file without success, so i've uploaded it here.

(For Remya)

This is from my last work with the islamicdatejs

We can get a better date format ...

We can get a similar result with Hijri.js.

This is far from being a finished work ...

Pending the solution with "jquery calendars", Hard to do !

Avatar
Discard

Did you stop your work??

Author

No i didn't, but i am very busy with my work at this moment, i will try to work on the "jquery calendars" this weekend (Friday and Saturday).

Very Good to hear. I will wait for your updates.

But i'm really stuck with this issue.

Author

Which issue ?

Islamic calendar issue. i want to implement calendar on my openerp application.

I hope, did you start your work? I am also continuing with it. Let me know if any updates.

Hi Med Said BARA, Any updates about islamic calendar?

Best Answer

I have finished the convertion to hijri calendar in a separate module but the issue that i have is that calendar overrides the georgian calendar date so now the calendar of the system is hijri only, I'm working on to make it according to the user language ISA.

Also i have developed a simple workaround to solve this issue until i finish my previous hijri module where the user can see multi calendars like hijri, georgian and persian and he can set and change all the calendars once he change any of these date fields.

 

 

Avatar
Discard
Author

Good to know, keep on and good luck.