Giter VIP home page Giter VIP logo

koalixcrm's Introduction

Welcome to the koalixcrm

Why koalixcrm

Values:Features:
  • Free and open
  • REST interface to many entities
  • Open source
  • BSD license
  • Simple and beautiful user interface
  • High quality output documents
  • Small business <10 employees with access
  • Cloud hosted, Self-hosted, Not hosted (single-user, offline)
  • Manage Contacts, Leads, Persons
  • Manage Products and Prices
  • Manage Documents such as Invoices, Quotes, Purchase Orders, ...
  • Manage Projects, Tasks, Work (Traditional project management)
  • Manage Document Tempaltes
  • Double Entry Accounting
  • Create Project Reports
  • Adjust Access Rights

Quality badges on master

Project build: Codacy results: Docker: Social Networks:
Django CI Codacy Badge
Codacy Badge
Docker Automated build
Docker Stars Docker Pulls
Gitter chat

Documentation

You can find the documentation of koalixcrm here: doc

Installation

Some information about the installation of koalixcrm: installation

Development environment setup

To set up the development environment for KoalixCRM, you can use Docker with the following commands:

docker-compose pull docker-compose up

To run the application, use:

docker compose run --service-ports web python manage.py runserver 0.0.0.0:8000 --settings=projectsettings.settings.development_docker_sqlite_settings.py

Release Process

Information about the release process: Release Process

Update from version 1.12 to 1.14

Some information about the update procedure from Version 1.12 to Version 1.14: update

koalixcrm's People

Contributors

bahron83 avatar codacy-badger avatar dependabot[bot] avatar goetzk avatar hacont avatar purplebooth avatar scaphilo avatar willyudi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

koalixcrm's Issues

Message says error and success

Hi,
As a follow on to issue #27 -
After that I edited the salescontactpofitions per tutorial. I received the following message:

* 		Unsuccessfull in updating the Prices There is no Price for this product: 1 One hour work in housethat matches the date: 2017-08-06 ,customer: 50 John Duffy Magnum and unit:hr
* 		The Quote "Quote: 105 from Contract: 51" was changed successfully.

The quote was changed successfully, so I'm assuming the first message is related to a linked object. I find the message a bit confusing so I can't help guess what caused it.

Excessively complex cat command

Hi,
In the user extension section there is a bit on PDFs which contains this quote "If the command creates any error you will not see it in Django!! This is very hard to debug and the reason why koalixcrm writes /tmp/tmp.log with the command koalixcrm used to create the PDF. To get the error message do exactly this: sudo su www-data; cd; cat /tmp/tmp.log | bash; This will give you a good error message.
"
https://github.com/scaphilo/koalixcrm/blob/master/koalixcrm/doc/source/djangoUserExtention.rst

The instructions given seem extremely complicated for viewing a log file, and should probably be something like "sudo cat /tmp/tmp.log |less")

I'm happy to supply a pull request if desired.
thanks,

Messed up pip installation

The pip installation now creates a library called site_packages/apps/accounting and so on
but it should actually create a site_packages/koalixcrm/apps/accounting and so on
Also the imports in all files need to be adjusted back to koalixcrm.apps.accounting instead of apps.accounting
this has to be fixed for all packages crm, accounting, subscriptions and djangoUserExtension

Also the pip installation creates packages called koalixcrm.settings because the automatic search_packages is looking for folders with init.py

Improved Address and Price handling

  1. Address must be extended by a "valid from" and a "valid until" value (and think about something more)
  2. The selection of the active address in the contract, invoices and quotes must be explicit and no more implicit.
    Example: Today the default customer address is automatically used as billing, delivery and contact address when it is not defined within the contract.

Payment Gateway Integration?

Currently it seems koalix only tracks invoices/payments. I would love to generate an invoice, and send my client a link to pay it. I can certainly facilitate this on my own in a custom app, but this is a pretty important part of any CRM in any case.

I'm sorry this is such a stupid question but I am realizing there is no mention of this in the docs. This would be a very desirable feature. I originally came to this project with this goal in mind.

Do you have any advice for people looking to actually take payments for invoices?

fop issue

hi just testing this app as i love the concept when trying to create a balance sheets i get the follow message:

USAGE fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|-ps|-txt|-at [mime]|-print] [OPTIONS] -version print FOP version and exit -d debug mode -x dump configuration settings -q quiet mode -c cfg.xml use additional configuration file cfg.xml -l lang the language to use for user information -nocs disable complex script features -r relaxed/less strict validation (where available) -dpi xxx target resolution in dots per inch (dpi) where xxx is a number -s for area tree XML, down to block areas only -v run in verbose mode (currently simply print FOP version and continue) -o [password] PDF file will be encrypted with option owner password -u [password] PDF file will be encrypted with option user password -noprint PDF file will be encrypted without printing permission -nocopy PDF file will be encrypted without copy content permission -noedit PDF file will be encrypted without edit content permission -noannotations PDF file will be encrypted without edit annotation permission -nofillinforms PDF file will be encrypted without fill in interactive form fields permission -noaccesscontent PDF file will be encrypted without extract text and graphics permission -noassembledoc PDF file will be encrypted without assemble the document permission -noprinthq PDF file will be encrypted without print high quality permission -a enables accessibility features (Tagged PDF etc., default off) -pdfprofile prof PDF file will be generated with the specified profile (Examples for prof: PDF/A-1b or PDF/X-3:2003) -conserve enable memory-conservation policy (trades memory-consumption for disk I/O) (Note: currently only influences whether the area tree is serialized.) -cache specifies a file/directory path location for the font cache file -flush flushes the current font cache file [INPUT] infile xsl:fo input file (the same as the next) (use '-' for infile to pipe input from stdin) -fo infile xsl:fo input file -xml infile xml input file, must be used together with -xsl -atin infile area tree input file -ifin infile intermediate format input file -imagein infile image input file (piping through stdin not supported) -xsl stylesheet xslt stylesheet -param name value to use for parameter in xslt stylesheet (repeat '-param name value' for each parameter) -catalog use catalog resolver for input XML and XSLT files [OUTPUT] outfile input will be rendered as PDF into outfile (use '-' for outfile to pipe output to stdout) -pdf outfile input will be rendered as PDF (outfile req'd) -pdfa1b outfile input will be rendered as PDF/A-1b compliant PDF (outfile req'd, same as "-pdf outfile -pdfprofile PDF/A-1b") -awt input will be displayed on screen -rtf outfile input will be rendered as RTF (outfile req'd) -pcl outfile input will be rendered as PCL (outfile req'd) -ps outfile input will be rendered as PostScript (outfile req'd) -afp outfile input will be rendered as AFP (outfile req'd) -tiff outfile input will be rendered as TIFF (outfile req'd) -png outfile input will be rendered as PNG (outfile req'd) -txt outfile input will be rendered as plain text (outfile req'd) -at [mime] out representation of area tree as XML (outfile req'd) specify optional mime output to allow the AT to be converted to final format later -if [mime] out representation of document in intermediate format XML (outfile req'd) specify optional mime output to allow the IF to be converted to final format later -print input file will be rendered and sent to the printer see options with "-print help" -out mime outfile input will be rendered using the given MIME type (outfile req'd) Example: "-out application/pdf D:\out.pdf" (Tip: "-out list" prints the list of supported MIME types and exits) -svg outfile input will be rendered as an SVG slides file (outfile req'd) Experimental feature - requires additional fop-sandbox.jar. -foout outfile input will only be XSL transformed. The intermediate XSL-FO file is saved and no rendering is performed. (Only available if you use -xml and -xsl parameters) [Examples] fop foo.fo foo.pdf fop -fo foo.fo -pdf foo.pdf (does the same as the previous line) fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf fop -xml foo.xml -xsl foo.xsl -foout foo.fo fop -xml - -xsl foo.xsl -pdf - fop foo.fo -mif foo.mif fop foo.fo -rtf foo.rtf fop foo.fo -print fop foo.fo -awt Exception java.io.FileNotFoundException: Error: xsl file /uploads/templatefiles/balancesheet.xsl not found

any ideas i copied your installed instruction twice and still got the same error..

Empty blocks in documentation

Hi,
There are a couple of places in the documentation which are missing or refer to missing/incomplete work.
I'm hoping there is someone who is able to fix the documentation by adding stubs or fixing wording as required so that the value of the docs increases.

https://github.com/scaphilo/koalixcrm/blob/master/koalixcrm/doc/source/accounting.rst#account-section

  • Most of the parts in this section are marked as incomplete or missing. Is that still the case? If they are incomplete, what is the purpose of having them in the documentation?

https://github.com/scaphilo/koalixcrm/blob/master/koalixcrm/doc/source/accounting.rst#bookings

https://github.com/scaphilo/koalixcrm/blob/1be5904e2ca172d655c2d7fc72c8dbeeb8f13a1a/koalixcrm/doc/source/crm.rst

  • Has headings but everything inside them is empty.

https://github.com/scaphilo/koalixcrm/blob/master/koalixcrm/doc/source/djangoUserExtention.rst#xsl-files

  • XSL files section on the User Extensions page has no content either, is it actually separate to the heading below it?

Set up code coverage analysis incl. export to Codacy

As a developer I want to see the current test coverage on Codacy to have one more information source which helps me to improve the quality of koalixcrm.

TODO

  • Set up code coverage with coverage.py
  • Configure the the export of the coverage report to Codacy.

PDF creation on windows does not work

On windows - the pdf creation does not work, The process stores a file called pdfinvoice_1.xml instead of storing pdf\invoice_1.xml

afterwards the next process does not find the xml file because is not the correct name and not the correct location

Project should exist independent from contracts

Context:
Projects are used for budgeting reasons. Employees can report work on the projects.
Projects may exists independent from contract with customers
Projects may be used to acquire new customers and and new contracts.
Sometimes a project can be linked to different contracts

Contracts are agreements between a customer and the company.
Contracts may result in a project
Sometimes it is required to have several projects within a contract

Current situation
There is no differentiation between Contract and Project, there exists only the Contract entity in the database

Required situation
There exists two different entitities in the database.
The project will be in the software package "reporting" (sub package of crm)
The contract will stay where it was software package "document" (sub package of crm)
Through an admin-action it possible to create a project from a contract
Through an admin-action it is possible to create a contract from a project

Questions:
Do we need departments where the costs for internal projects will be acquired
When we have a department model - would it require an action "create a project"

AttributeError in manage.py syncdb

After running python manage.py syncdb I get the following AttributeError:

Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 219, in execute
    self.validate()
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/lib/python2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/usr/lib/python2.7/site-packages/django/db/models/loading.py", line 146, in get_app_errors
    self._populate()
  File "/usr/lib/python2.7/site-packages/django/db/models/loading.py", line 61, in _populate
    self.load_app(app_name, True)
  File "/usr/lib/python2.7/site-packages/django/db/models/loading.py", line 78, in load_app
    models = import_module('.models', app_name)
  File "/usr/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/var/www/koalixcrm/djangoUserExtension/models.py", line 66, in <module>
    class UserExtensionPostalAddress(crm.models.PostalAddress):
AttributeError: 'module' object has no attribute 'models'

Any idea why this is occuring? I've tried on Fedora 14 x64 & Ubuntu 10.10 x64.

Disabling data modifications

As a koalixcrm administrator i have an easy possibility to stop any modification on the data through the admin view .

Set up CI build with travis

As a developer I want to have a CI build which is executed right after each commit on GitHub to be sure, that the project can be built and all the tests are passing successfully.

Validity checking issue on demo - happens when sales positions are empty in Quote

Hi,
I created http://demokoalixcrm.koalix.org/admin/crm/quote/105/ while following the documentation (https://koalixcrm.readthedocs.io/en/master/tutorial.html#create-your-first-quote) but with one exception - I skipped the step where it specifies to create Salescontract.

It resulted in the following backtrace

TypeError at /admin/crm/quote/105/
unsupported operand type(s) for /: 'Decimal' and 'NoneType'
Request Method:	POST
Request URL:	http://demokoalixcrm.koalix.org/admin/crm/quote/105/
Django Version:	1.3
Exception Type:	TypeError
Exception Value:	unsupported operand type(s) for /: 'Decimal' and 'NoneType'
Exception Location:	/var/www/koalixcrm_english/crm/models.py in recalculatePrices, line 324
Python Executable:	/usr/bin/python
Python Version:	2.7.3
Python Path:	['/var/www/koalixcrm_english/',
 '/opt/django/django',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL']
Server time:	Sun, 6 Aug 2017 02:46:12 +0200
[..cut ..]
/var/www/koalixcrm_english/crm/models.py in recalculatePrices
324.                price = int(price*(1-self.discount/100)/self.currency.rounding)*self.currency.rounding ...
▼ Local vars
Variable	Value
positions	[]
price	0
tax	0
pricingDate	datetime.date(2017, 8, 6)
self	<Quote: Quote: 105 from Contract: 51>

I'm guessing the correct fix is to ensure self.discount is set during save() (or even that the sales contract fields be marked as required) but I'm not familiar enough with this project to be sure.

Invoices: Discount has not effect on the invoice amount

Description

Neither the global discount on invoice level nor the specific discounts on salescontract position level have any effect on the calculated invoice amount. The amount is indepenantely calculatet with the full product price.

Reproduction

  1. Create a new contract
  2. Create a new invoice for the contract
  3. Add two arbitrary positions to the contract (unit: h, product: 1 working hour in-house)
  4. Set discount = 0.25 ...
    a) ... on invoice level and check the resulting invoice amount
    b) ... for one of the added salescontract positions and check the resulting invoice amount

Pinned django dependency via pypi

I use a mish-mash of various open source apps that have a fairly wide variety of django version requirements.

Currently I am trying to plug koalix to be a django-CMS addon via to the Divio platform. There are two packages that require <1.11 and I would like to keep using their versions.

Is django 1.11.4 really a hard dependency? Not even ~=1.11? Does it break in < 1.11?

Implement django-REST interface

To have a standardized interface between potential future customized frontend we should evaluate whether the django-REST interface can fulfill all our needs.
Also the django-REST library will allow us to generate XML and json objects including the refering objects. this will simplify the fixing of issue #18

Swiss Account Tables?

This mention of swiss accounts is confusing. This leads me to believe this is not compatible with american accounts in some way?

Could you please clarify.

Refactor project structure

As a developer I would like to refactor the project structure to have a better overview over the different components of the project. It will statisfy the requirements for multi-target environment configuration.

My proposal for the new project structure:

  • koalixcrm
    • apps
      • accounting
        • const
        • locale
        • management
        • migrations
        • tests
      • crm
        • ....
      • djangoUserExternsion
        • ....
      • substriptions
        • ...
      • static
      • templates
    • documentation
    • koalixcrm
      • settings
        • environment1_settings.py
        • environment2_settings.py
        • ...
      • globalSuppoertFunctions.py
      • plugin.py
      • urls.py
      • wsgi.py
    • requirements
    • CODE_OF_CONDUCT.md
    • CONTRIBUTING.md
    • LICENCE
    • manage.py
    • MANIFEST.in
    • Procfile (required by Heroku)
    • README.md
    • requirements.txt (required by Heroku)
    • setup.py

local settings

Currently the settings are within the koalixcrm repo as a single settings.py. A local install will have to change the values and this breaks compatibility of the git repo for automated future updates via git pull origin master.

Wouldn't it make more sense to have an empty settings.default.py which has to be copied to settings.py?

(Aside of that I wanna say a quick thanks for your work!)

What is the correct support channel

Hi,
I've built up a big list of questions/comments while reviewing koalixcrm and wondered what the proper way of discussing them is. GH and the docs don't mention support at all.

Demo

The Guest id and password for you website ate not working i need a demo of you website give me its guest login

Data backup

As an administrator of the koalixcrm i have an easy method to frequently backup the data through the given admin view.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.